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 di chiamata alle app Webex. Se il sistema NPS non supporta altre app, è possibile seguire la procedura semplificata nella Guida alla soluzione Webex per BroadWorks https://help.webex.com/z9gt5j.

Panoramica proxy NPS

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

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

La funzione migliora anche la funzionalità del server push di notifica per eseguire il push delle notifiche sui dispositivi Android attraverso la nuova API HTTPv1 di Google Firebase Cloud Messaging (FCM).

Il server XSP (o la piattaforma di consegna applicazioni ADP) che host NPS deve soddisfare i seguenti requisiti:

Versioni minime e limitazioni di co-residenza

  • NPS deve essere attivato su un XSP/ADP dedicato e NPS deve essere l'unica applicazione ospitata sul server. Questa modifica elimina le interferenze nell'invio delle notifiche push.

  • Deve essere presente una sola app NPS in una distribuzione. Se si sta utilizzando la funzionalità mobile UC-One Collaborate/Connect e UC-One SaaS e si sta implementando Webex per BroadWorks, è necessario condividere questo singolo NPS per tutte le app.

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

    R22/R23 XSP è compatibile con uno stack R21 se XSP esegue solo NPS e AS è R21. LA VERSIONE 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 queste note prima di configurare il server NPS condiviso per l'uso del proxy NPS:

  • Se il server NPS viene utilizzato con altre app (non solo l'app Webex): Configurare prima il proxy NPS, quindi modificare il server NPS dall'uso dell'API FCM precedente all'USO dell'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 APNs per l'app iOS.

APNs HTTP/2

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

  • Gli XSP/ADP che già supportano l'app Collaborate o SaaS BroadWorks devono essere migrati a HTTP/2. Per informazioni dettagliate sulla configurazione di HTTP/2, vedere Supporto HTTP/2 per il server push di notifica per 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 l'uso delle chiavi FCMv1 prima di configurare NPS per l'uso del proxy NPS.

  • Se XSP/ADP attualmente supporta l'app Connect o UC-One SaaS, abilitare le chiavi FCMv1 dopo aver configurato il proxy NPS. Si consiglia di eseguire la migrazione di tutte le app aggiuntive alle chiavi 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 eseguire per la migrazione al proxy NPS

Sequenza

Titolo attività

Quando/Perché è richiesta un'attività?

1

Eseguire la migrazione da NPS a HTTP/2 per le app UC-One SaaS (o Connect) iOS.

Se il server NPS supporta tali app e non è ancora configurato per HTTP/2.

2

Eseguire la migrazione da NPS a FCMv1 per le app UC-One SaaS (o Connect) Android.

Se il server NPS supporta tali app e non è ancora configurato per FCMv1.

3

Abilitare la modalità FCMv1 e testare le notifiche push.

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

4

Ri abilitare la modalità FCM preesiste.

Se il server NPS supporta UC-One SaaS. Se si lascia abilitato FCMv1, prima di configurare il proxy NPS, le notifiche push a UC-One SaaS non riescono.

5

Installare le patch del proxy di autenticazione NPS.

Se NPS è su XSP R22 o XSP R23.

6

Configurare NPS per utilizzare il proxy di autenticazione NPS:

  • Allega supporto tecnico da NPS

  • Richiedi account OAuth CI

  • Creare l'account CI su NPS e configurare il timeout di aggiornamento del token

  • Aggiungi ID app Android

  • Aggiungi ID app iOS

  • Controllo/impostazione di URL e timeout di connessione

  • Aggiungi app a elenco utenti consentiti AS

  • (Ri-) Abilita FCMv1

  • Riavvia XSP / ADP

  • Test dei PC per le app iOS e Android

Sempre richiesto.

7

Rimuovere le chiavi della modalità FCM preesiste.

Per le app supportate correttamente da NPS su FCMv1.

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

Operazioni preliminari

Se XSP utilizza R22, è necessario applicare ap354313 prima di configurare l'applicazione NPS per l'uso di 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 sotto 1000.

2

Aggiungere gli ID applicazione al contesto delle applicazioni APNS, facendo in modo di omettere la chiave di autenticazione, impostarlo come 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 le chiavi di autenticazione con XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> get

4

Se la chiave di autenticazione non è vuota per com.broadsoft.uc-one, è possibile cancellarla con XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> clear the-authkey

5

Abilitare HTTP/2:

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

6

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

7

Scorrere fino alla sezione Server push di notifica e selezionare la release in uso (ad esempio, release 22), quindi seguire le istruzioni fornite nel portale.

  • Questa attività si applica a NPS su XSP. Ignora se il server NPS è su ADP.

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

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

  • Questa attività prepara l'NPS per FCMv1 in modo che sia possibile abilitarlo come parte della configurazione del proxy di autenticazione NPS. Non abilitare FCMv1 finché non si è pronti a configurare il proxy di autenticazione NPS, in caso di errore delle notifiche ai client SaaS.

1

Ottenere l'ID progetto dalla console Firebase:

  1. Accedere a console.firebase.google.com.

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

  3. Aprire la scheda Generale e registrare l'ID progetto.

2

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

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

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

  3. Oppure aprire un account di servizio esistente e generare una nuova chiave privata.

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

  4. Scaricare la chiave in una posizione protetta.

3

Copiare la chiave nel provider di servizi XSP che ospita il server NPS.

4

Aggiungere l'ID progetto e la chiave privata associata al contesto del progetto 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

Verificare la configurazione di FCM in base agli attributi e ai valori consigliati 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. Ignora se il server NPS è su XSP.

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

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

  • Questa attività prepara l'NPS per FCMv1 in modo che sia possibile abilitarlo come parte della configurazione del proxy di autenticazione NPS. Non abilitare FCMv1 finché non si è pronti a configurare il proxy di autenticazione NPS, in caso di errore delle notifiche ai client SaaS.

1

Ottenere l'ID progetto dalla console Firebase:

  1. Accedere a console.firebase.google.com.

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

  3. Aprire la scheda Generale e registrare l'ID progetto.

2

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

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

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

  3. Oppure aprire un account di servizio esistente e generare una nuova chiave privata.

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

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

3

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

4

Accedere alla CLI ADP e aggiungere 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 il 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 effettuare questa operazione (come parte della migrazione) solo se:

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

  • È già stato testato che le notifiche push di chiamata ad altre app funzionano con l'API FCMv1.

Si sta disabilitando temporaneamente FCMv1 poiché le chiavi FCMv1 per queste app devono essere abilitate solo durante il processo di configurazione del proxy di autenticazione NPS.

1

Accedere al provider di servizi di rete NPS condiviso.

2

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

1

Creare una richiesta di servizio con il contatto di onboarding o con TAC per premettere l'account client OAuth (Webex Common Identity). Titolo della richiesta di servizio Configurazione NPS per impostazione proxy autenticazione.

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

Creare l'account client 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 immessi corrispondano a quanto fornito, eseguire XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client> get

3

Inserire l'URL del 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 dell'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 notifiche Apple iOS) Aggiungere l'ID applicazione al contesto delle applicazioni APNS, facendo in modo di omettere la chiave di autenticazione, impostarlo come 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 riportati:

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

Controllare se il server dell'applicazione è un ID applicazione elettronica, poiché potrebbe essere necessario aggiungere le app Webex all'elenco dei consentiti:

  1. Esegui AS_CLI/System/PushNotification> get e controllare il valore di enforceAllowedApplicationList. In caso di 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 XSP:

bwrestart
2

Testare le notifiche di chiamata in 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: Se le notifiche push non riescono per l'applicazione UC-One Android, è possibile che si sia in caso di configurazione errata. In tal caso, è possibile ripristinare il FCM precedente come segue:

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

  2. Riavvia XSP: bwrestart

  3. Controllare la configurazione.

  4. Ri abilitare FCMv1 e riavviare XSP.

  5. Ripetere il test.

3

Testare le notifiche di chiamata a iOS effettuando chiamate da un abbonato BroadWorks al client chiamante su iOS. Verificare che la notifica di chiamata venga visualizzata sul dispositivo iOS.

Nota: Se le notifiche push non riescono per l'applicazione iOS UC-One, è possibile che si sia in caso di configurazione errata. In tal caso, è possibile ripristinare l'interfaccia binaria precedente con set HTTP2Enabled false