Panoramica del proxy di autenticazione NPS


Questo articolo descrive come configurare un NPS condiviso per utilizzare il proxy di autenticazione NPS, in modo che possa essere utilizzato anche per eseguire il push delle notifiche delle chiamate alle app Webex. Se l'NPS non supporta altre app, è possibile seguire la procedura semplificata nella Guida alla soluzione Webex per BroadWorks https://help.webex.com/z9gt5j.

Panoramica sul proxy NPS

Per la compatibilità con Webex per BroadWorks, l'NPS deve essere aggiornato per supportare la funzione proxy NPS, server push per VoIP in UCaaS.

La funzione implementa un nuovo design nel server di notifica push per risolvere la vulnerabilità di sicurezza della condivisione delle chiavi private di notifica push con i provider di servizi per client mobili. Anziché condividere certificati e chiavi di notifica push con il provider di servizi, l'NPS utilizza una nuova API per ottenere un token di notifica push di breve durata dal backend UCaaS e utilizza questo token per l'autenticazione con gli APN Apple e i servizi Google FCM.

La funzione migliora anche la capacità del server push delle notifiche di eseguire notifiche push ai dispositivi Android attraverso la nuova API HTTPv1 di Google Firebase Cloud Messaging (FCM).

L'XSP (o ADP della piattaforma di consegna dell'applicazione) che ospita NPS deve soddisfare i seguenti requisiti:

Versioni minime e limitazioni di coresidenza

  • NPS deve essere attivato su un XSP/ADP dedicato e NPS deve essere l'unica applicazione ospitata sul server. allo scopo di eliminare le interferenze con le notifiche push.

  • In una distribuzione deve essere presente solo un'app NPS. Se stai utilizzando UC-One Collaborate/Connect mobile e/o UC-One SaaS e stai implementando Webex per BroadWorks, devi condividere questo singolo NPS per tutte le app.

  • NPS deve essere su XSP versione R22 o successiva o su ADP.

    R22/R23 XSP è compatibile con uno stack R21 se XSP esegue solo NPS e AS è R21.SP1. Per ulteriori informazioni, vedere la matrice di compatibilità BroadWorks.

  • Ulteriori informazioni sul server ADP sono disponibili su https://xchange.broadsoft.com/node/1051580.

NPS condiviso

Leggere questi appunti prima di configurare l'NPS condiviso per utilizzare il proxy NPS:

  • Se l'NPS viene utilizzato con altre app (non solo con l'app Webex): Prima configurare il proxy NPS, quindi modificare l'NPS da utilizzare l'API legacy FCM a utilizzare l'API HTTP v1 FCM.

  • Dopo aver verificato che le notifiche funzionano correttamente per le app meno recenti con il proxy NPS, rimuovere la chiave API FCM per l'app Android e la chiave di autenticazione APN per l'app iOS.

APN HTTP/2

  • Se sono state distribuite app iOS non da Cisco/BroadSoft, configurare tali app per utilizzare il protocollo HTTP/2 APNS prima di configurare NPS per utilizzare il proxy NPS.

  • È necessario eseguire la migrazione su HTTP/2 degli XSP/ADP che già supportano l'app Collaborate o SaaS BroadWorks. Per informazioni dettagliate sulla configurazione di HTTP/2, vedere HTTP/2 Support to Notification Push Server for APNS (la migrazione di NPS per supportare queste app iOS è riepilogata in questo articolo).

Android FCMv1

  • Se sono state distribuite app Android non da Cisco/BroadSoft, configurare tali app per utilizzare i tasti FCMv1 prima di configurare NPS per utilizzare il proxy NPS.

  • Se XSP/ADP supporta attualmente l'app Connect o UC-One SaaS, abilitare i tasti FCMv1 dopo aver configurato il proxy NPS. Si consiglia di eseguire la migrazione di tutte le app aggiuntive ai tasti FCMv1, abilitare e testare, quindi disabilitare fino a quando non si è pronti a completare le istruzioni di impostazione (il flusso di migrazione è documentato in questo articolo).

Figura 1. Riepilogo visivo della migrazione al proxy di autenticazione NPS
Tabella 1. Riepilogo delle attività da migrare al proxy NPS

Sequenza

Titolo attività

Quando/Perché è richiesta un'attività?

1

Migrazione di NPS su HTTP/2 per applicazioni iOS UC-One SaaS (o Connect).

Se l'NPS supporta tali app e queste non sono ancora configurate per HTTP/2.

2

Migrazione di NPS a FCMv1 per le app SaaS (o Connect) Android di UC-One.

Se l'NPS supporta tali app e queste non sono ancora configurate per FCMv1.

3

Abilitare la modalità FCMv1 e testare le notifiche push.

Se l'NPS supporta UC-One Connect e/o altre app Android (non Cisco).

4

Riabilitare la modalità legacy FCM.

Se l’NPS supporta UC-One SaaS. Se si lascia FCMv1 abilitato, prima di configurare il proxy NPS, le notifiche push a UC-One SaaS iniziano a non riuscire.

5

Installare le patch proxy di autenticazione NPS.

Se NPS è su XSP R22 o XSP R23.

6

Configurare NPS per utilizzare il proxy di autenticazione NPS:

  • Collegare il supporto tecnico da NPS

  • Richiedi account CI OAuth

  • Crea account CI su NPS e configura timeout token di aggiornamento

  • Aggiungi ID app Android

  • Aggiungi ID app iOS

  • Verifica/imposta URL e timeout di connessione

  • Aggiungi app a elenco domini consentiti AS

  • (Ri-)Abilita FCMv1

  • Riavvio di XSP / ADP

  • Esegui test PN per app iOS e Android

Sempre obbligatorio.

7

Rimuovere i tasti della modalità legacy FCM.

Per le app supportate correttamente da NPS su FCMv1.

Questa attività è obbligatoria per le notifiche push alle app UC-One SaaS e Webex sulle piattaforme iOS.

Operazioni preliminari

Se XSP è in esecuzione R22, è necessario applicare ap354313 prima di poter configurare l'applicazione NPS per utilizzare HTTP/2 per APNS.

1

Impostare l'URL di produzione e i parametri di connessione su XSP_CLI/Applications/NotificationPushServer/APNS/Production>

set url https://api.push.apple.com/3/device

set connectionPoolSize 2

set connectionTimeout 3000

set connectionIdleTimeoutInSeconds 600

Nota: Non impostare il timeout di connessione al di sotto di 1000.

2

Aggiungere gli ID applicazione al contesto delle applicazioni APNS, assicurandosi di omettere il tasto Auth – impostarlo su vuoto.

Per UC-One SaaS: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.broadsoft.uc-one

Per l'app Webex: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

3

Controllare i tasti di autenticazione con XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> get

4

Se il tasto di autenticazione non è vuoto per com.broadsoft.uc-one, puoi eliminarlo con XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> clear the-authkey

5

Abilita HTTP/2:

XSP_CLI/Applications/NotificationPushServer/APNS/GeneralSettings> set HTTP2Enabled true

6

Solo per le applicazioni UC-One SaaS: Accedere al portale del rivenditore e andare a Configurazione > BroadWorks > .

7

Scorrere fino alla sezione Notification Push Server e selezionare la propria release (es. Release 22), quindi seguire le istruzioni fornite nel portale.

  • Questa attività si applica a NPS su XSP. Ignorarlo se l'NPS è su ADP.

  • È possibile utilizzare questa procedura per la migrazione alle notifiche FCMv1 per le app Android UC-One Connect o UC-One SaaS.

  • È necessario utilizzare FCMv1 se si desidera utilizzare il proxy NPS per autenticare le notifiche push in UC-One o nelle app Webex Android.

  • Questa attività prepara l'NPS per FCMv1 in modo da poterlo abilitare come parte della configurazione del proxy di autenticazione NPS. Non abilitare FCMv1 finché non si è pronti a configurare il proxy di autenticazione NPS, altrimenti le notifiche ai client SaaS non andranno a buon fine.

1

Richiedere l'ID progetto dalla console Firebase:

  1. Accedi a console.firebase.google.com.

  2. Selezionare il progetto dell'app UC-One (Connect o SaaS), aprire le impostazioni del progetto.

  3. Aprire la scheda General (Generale) e registrare l’ID del progetto.

2

Ottenere la chiave privata dell'account di servizio da Firebase:

  1. Passare alla scheda Account servizio nelle impostazioni del progetto.

  2. Creare un nuovo account di servizio e ottenere la relativa chiave privata.

  3. In alternativa, aprire un account di servizio esistente e generare una nuova chiave privata.

    Nota: L'account servizio deve disporre dell'autorizzazione firebaseadmin-sdk.

  4. Scarica la chiave in una posizione protetta.

3

Copiare la chiave in XSP che ospita l'NPS.

4

Aggiungere l'ID del progetto e la chiave privata associata al contesto dei progetti FCM:

XSP_CLI/Applications/NotificationPushServer/FCM/Projects> add project-id path/to/keyfile

5

Aggiungere l'applicazione UC-One (Connect o SaaS) e l'ID progetto associato al contesto delle applicazioni FCM:

XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add applicationId com.broadsoft.connect projectId project-id

6

Controllare la configurazione della centralina FCM in base agli attributi e ai valori consigliati mostrati qui. Usa set versione del comando per modificare i valori, se necessario:

Esegui XSP_CLI/Applications/NotificationPushServer/FCM> get

Parametro

Valore consigliato

authURL

https://www.googleapis.com/oauth2/v4/token

pushURL

https://fcm.googleapis.com/v1/projects/PROJECT-ID/messages:send

scope

https://www.googleapis.com/auth/firebase.messaging

tokenTimeToLiveInSeconds

3600

connectionPoolSize

10

connectionTimeoutInMilliseconds

3000

connectionIdleTimeoutInSeconds

600

  • Questa attività si applica a NPS su ADP. Ignorarlo se l'NPS è su XSP.

  • È possibile utilizzare questa procedura per la migrazione alle notifiche FCMv1 per le app Android UC-One Connect o UC-One SaaS.

  • È necessario utilizzare FCMv1 se si desidera utilizzare il proxy NPS per autenticare le notifiche push in UC-One o nelle app Webex Android.

  • Questa attività prepara l'NPS per FCMv1 in modo da poterlo abilitare come parte della configurazione del proxy di autenticazione NPS. Non abilitare FCMv1 finché non si è pronti a configurare il proxy di autenticazione NPS, altrimenti le notifiche ai client SaaS non andranno a buon fine.

1

Richiedere l'ID progetto dalla console Firebase:

  1. Accedi a console.firebase.google.com.

  2. Selezionare il progetto dell'app UC-One (Connect o SaaS), aprire le impostazioni del progetto.

  3. Aprire la scheda General (Generale) e registrare l’ID del progetto.

2

Ottenere la chiave privata dell'account di servizio da Firebase:

  1. Passare alla scheda Account servizio nelle impostazioni del progetto.

  2. Creare un nuovo account di servizio e ottenere la relativa chiave privata.

  3. In alternativa, aprire un account di servizio esistente e generare una nuova chiave privata.

    Nota: L'account servizio deve disporre dell'autorizzazione firebaseadmin-sdk.

  4. Scaricare la chiave (. file json) in una posizione sicura.

3

Importare il file .json nel server ADP /bw/install.

4

Accedi a ADP CLI e aggiungi il progetto e la chiave API al contesto dei progetti FCM:

ADP_CLI/Applications/NotificationPushServer/FCM/Projects> add connect-ucaas /bw/install/filename.json

5

Aggiungere l'ID applicazione e progetto al contesto delle applicazioni FCM:

ADP_CLI/Applications/NotificationPushServer/FCM/Applications> add applicationId com.broadsoft.ucaas.connect projectId project-id

6

Verificare la configurazione:

ADP_CLI/Applications/NotificationPushServer/FCM/Projects> get
Project ID Accountkey
========================
connect-ucaas ********
ADP_CLI/Applications/NotificationPushServer/FCM/Applications> get
Application ID Project ID
===================================
com.broadsoft.ucaas.connect connect-ucaas

È necessario eseguire questa operazione (come parte della migrazione) solo se:

  • L'NPS viene utilizzato per le app UC-One SaaS o BroadWorks Connect Android.

  • È già stato verificato che le notifiche push delle chiamate ad altre app funzionano con API FCMv1.

Si sta disabilitando temporaneamente FCMv1 poiché i tasti FCMv1 per queste app devono essere abilitati solo durante il processo di configurazione del proxy di autenticazione NPS.

1

Accedere all'hosting XSP dell'NPS condiviso.

2

Passare al contesto FCM e disabilitare FCM v1: XSP_CLI/Applications/NotificationPushServer/FCM> set V1enabled false per tornare all'uso della chiave API legacy FCM.

1

Crea una richiesta di servizio con il tuo contatto di onboarding o con TAC per il provisioning del tuo account client OAuth (Webex Common Identity). Impostare la richiesta di servizio Configurazione NPS per l'impostazione proxy autenticazione.

Cisco fornisce un ID client OAuth, un segreto client e un token di aggiornamento valido per 60 giorni. Se il token scade prima di utilizzarlo con l'NPS, è possibile presentare un'altra richiesta.
2

Creare l'account cliente su NPS:

XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client> set clientId client-Id-From-Step1

XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client> set clientSecret
New Password: client-Secret-From-Step1
XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client> set RefreshToken
New Password: Refresh-Token-From-Step1

Per verificare che i valori inseriti corrispondano a quanto ricevuto, eseguire XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client> get

3

Immettere l'URL proxy NPS e impostare l'intervallo di aggiornamento del token (consigliato 30 minuti):

XSP_CLI/Applications/NotificationPushServer/CloudNPSService> set url https://nps.uc-one.broadsoft.com/nps/

XSP_CLI/Applications/NotificationPushServer/CloudNPSService> set VOIPTokenRefreshInterval 1800

4

(Per le notifiche Android) Aggiungere gli ID applicazione Android al contesto delle applicazioni FCM su NPS.

Per l'app Webex su Android: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add com.cisco.wx2.android

Per l'app UC-One su Android: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add com.broadsoft.connect

5

(Per le notifiche Apple iOS) Aggiungere l'ID applicazione al contesto delle applicazioni APNS, assicurandosi di omettere il tasto Auth – impostarlo su vuoto.

Per l'app Webex su iOS: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

Per l'app UC-One su iOS: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

6

Configurare i seguenti URL NPS:

Tabella 2.

Contesto CLI XSP

Parametro

Valore

XSP_CLI/Applications/NotificationPushServer/FCM>

authURL

https://www.googleapis.com/oauth2/v4/token

pushURL

https://fcm.googleapis.com/v1/projects//messages:send

scope

https://www.googleapis.com/auth/firebase.messaging

XSP_CLI/Applications/NotificationPushServer/APNS/Production>

url

https://api.push.apple.com/3/device

7

Configurare i seguenti parametri di connessione NPS in base ai valori consigliati mostrati:

Tabella 3.

Contesto CLI XSP

Parametro

Valore

XSP_CLI/Applications/NotificationPushServer/FCM>

tokenTimeToLiveInSeconds

3600

connectionPoolSize

10

connectionTimeoutInMilliseconds

3000

connectionIdleTimeoutInSeconds

600

XSP_CLI/Applications/NotificationPushServer/APNS/Production>

connectionTimeout

3000

connectionPoolSize

2

connectionIdleTimeoutInSeconds

600

8

Verificare se il server applicazioni sta eseguendo lo screening degli ID applicazione, poiché potrebbe essere necessario aggiungere le app Webex all'elenco utenti autorizzati:

  1. Esegui AS_CLI/System/PushNotification> get e verificare il valore di enforceAllowedApplicationList. Se lo è true, è necessario completare questa attività secondaria. Altrimenti, saltare il resto dell'attività secondaria.

  2. AS_CLI/System/PushNotification/AllowedApplications> add com.cisco.wx2.android “Webex Android”

  3. AS_CLI/System/PushNotification/AllowedApplications> add com.cisco.squared “Webex iOS”

1

Riavviare l'XSP:

bwrestart
2

Esegui test delle notifiche di chiamata su Android effettuando chiamate da un abbonato BroadWorks al client di chiamata su Android. Verificare che la notifica di chiamata venga visualizzata sul dispositivo Android.

Nota: In caso di errore delle notifiche push per l'applicazione Android UC-One, è possibile che vi sia una configurazione errata. Se questa è la propria situazione, è possibile ripristinare il modulo FCM precedente nel modo seguente:

  1. Disabilita FCMv1: XSP_CLI/Applications/NotificationPushServer/FCM> set V1Enabled false

  2. Riavviare XSP: bwrestart

  3. Verificare la configurazione.

  4. Riabilitare FCMv1 e riavviare XSP.

  5. Ripetete il test.

3

Esegui il test delle notifiche di chiamata su iOS effettuando chiamate da un abbonato BroadWorks al client chiamante su iOS. Verificare che la notifica di chiamata venga visualizzata sul dispositivo iOS.

Nota: In caso di errore delle notifiche push per l'applicazione iOS UC-One, è possibile che vi sia una configurazione errata. Se questa è la tua situazione, puoi ripristinare l'interfaccia binaria preesistente con set HTTP2Enabled false