Descripción general del proxy de autenticación de NPS


Este artículo describe cómo configurar un NPS compartido para que utilice un proxy de autenticación de NPS, de manera que también se pueda utilizar para enviar notificaciones de llamadas a las aplicaciones de Webex. Si su NPS no es compatible con otras aplicaciones, puede seguir el procedimiento simplificado de la Guía de solución de Webex para BroadWorks https://help.webex.com/z9gt5j.

Descripción general del proxy de NPS

Para ser compatible con Webex para BroadWorks, su NPS debe tener parches para admitir la característica de proxy de NPS, Push Server for VoIP in UCaaS (Servidor de inserción para VoIP en UCaaS).

La característica implementa un nuevo diseño en el servidor de inserción de notificaciones para resolver la vulnerabilidad de seguridad de compartir claves privadas de certificados de notificación de inserción con proveedores de servicios para clientes móviles. En lugar de compartir certificados y claves de notificación de inserción con el proveedor de servicios, el NPS utiliza una nueva API para obtener un token de notificación de inserción de corta duración del backend de UCaaS, y utiliza este token para la autenticación con los servicios APN de Apple y Google FCM.

La función también mejora la capacidad del servidor push de notificaciones para enviar notificaciones a dispositivos Android a través de la nueva API HTTPv1 de Google Firebase Cloud Messaging (FCM).

El XSP (o ADP de la plataforma de entrega de aplicaciones) que aloja NPS debe cumplir con los siguientes requisitos:

Versiones mínimas y restricciones de residencia en conjunto

  • NPS debe activarse en un XSP/ADP dedicado y NPS debe ser la única aplicación alojada en el servidor. Esto es para eliminar interferencias con la entrega de notificaciones push.

  • Solo debería haber una aplicación NPS en una implementación. Si está utilizando UC-One Collaborate/Connect móvil o UC-One SaaS, y está implementando Webex para BroadWorks, debe compartir este NPS único para todas las aplicaciones.

  • NPS debe estar en la versión R22 o posterior XSP, o ADP.

    R22/R23 XSP es compatible con una pila R21 si el XSP solo ejecuta NPS y el AS es R21.SP1. Consulte la Matriz de compatibilidad de BroadWorks para obtener más información.

  • Puede encontrar más información sobre el servidor ADP en https://xchange.broadsoft.com/node/1051580.

NPS compartida

Lea estas notas antes de configurar su NPS compartido para utilizar el proxy de NPS:

  • Si su NPS se utiliza con otras aplicaciones (no solo con la aplicación Webex): Primero configure el proxy de NPS y, a continuación, cambie el NPS de usar la API heredada de FCM a usar la API HTTP v1 de FCM.

  • Después de verificar que las notificaciones funcionan correctamente para las aplicaciones más antiguas con el proxy de NPS, elimine la clave API de FCM para la aplicación Android y la clave de autorización de APN para la aplicación iOS.

APN HTTP/2

  • Si implementó alguna aplicación para iOS que no sea de Cisco/BroadSoft, configure esas aplicaciones para que utilicen el protocolo APNS HTTP/2 antes de configurar NPS para que utilice el proxy de NPS.

  • Los XSP/ADP que ya sean compatibles con la aplicación Collaborate o SaaS BroadWorks deben migrarse a HTTP/2. Para obtener información detallada sobre la configuración de HTTP/2, consulte Compatibilidad con HTTP/2 para servidor de inserción de notificaciones para APNS (la migración de NPS para admitir estas aplicaciones iOS se resume en este artículo).

FCMv1 de Android

  • Si implementó alguna aplicación para Android que no sea de Cisco/BroadSoft, configure esas aplicaciones para que utilicen las claves FCMv1 antes de configurar NPS para que utilice el proxy de NPS.

  • Si XSP/ADP admite actualmente la aplicación SaaS de Connect o UC-One, habilite las claves FCMv1 después de configurar el proxy de NPS. Le recomendamos que migre todas las aplicaciones adicionales a las claves FCMv1, que las habilite y pruebe, y que luego las desactive hasta que esté listo para completar las instrucciones de configuración (el flujo de migración se documenta en este artículo).

Figura 1. Resumen visual de la migración al proxy de autenticación NPS
Tabla 1. Resumen de tareas para migrar al proxy de NPS

Secuencia

Título de la tarea

¿Cuándo y por qué se requiere la tarea?

1

Migre NPS a HTTP/2 para aplicaciones iOS UC-One SaaS (o Connect).

Si el NPS admite esas aplicaciones, y aún no están configuradas para HTTP/2.

2

Migre NPS a FCMv1 para las aplicaciones Android UC-One SaaS (o Connect).

Si el NPS admite esas aplicaciones, y aún no están configuradas para FCMv1.

3

Habilite el modo FCMv1 y pruebe las notificaciones push.

Si el NPS es compatible con UC-One Connect u otras aplicaciones para Android (que no son de Cisco).

4

Vuelva a habilitar el modo heredado de FCM.

Si NPS es compatible con UC-One SaaS. Si deja FCMv1 habilitado, antes de configurar el proxy de NPS, las notificaciones por inserción a UC-One SaaS comienzan a fallar.

5

Instale parches proxy de autenticación de NPS.

Si NPS está en XSP R22 o XSP R23.

6

Configure NPS para que utilice el proxy de autenticación de NPS:

  • Adjuntar soporte técnico de NPS

  • Solicitar cuenta de CI OAuth

  • Crear cuenta de CI en NPS y configurar el tiempo de espera del token de actualización

  • Agregar id de aplicación de Android

  • Agregar ID de aplicación iOS

  • Comprobar/establecer URL y tiempos de espera de conexión

  • Agregar aplicaciones a la lista de permitidos de AS

  • (Re-)Habilitar FCMv1

  • Reiniciar XSP/ADP

  • Probar PN para aplicaciones iOS y Android

Siempre necesario.

7

Elimine las claves de modo heredadas de FCM.

Para aplicaciones compatibles con éxito con NPS en FCMv1.

Esta tarea es obligatoria para las notificaciones push a las aplicaciones SaaS y Webex de UC-One en plataformas iOS.

Antes de comenzar

Si su XSP está ejecutando R22, debe aplicar ap354313 antes de poder configurar la aplicación NPS para utilizar HTTP/2 para APNS.

1

Establezca la URL de producción y los parámetros de conexión en 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: No establezca el tiempo de espera de conexión por debajo de 1000.

2

Agregue los ID de aplicación al contexto de aplicaciones de APNS y asegúrese de omitir la tecla de autenticación: configúrela como vacía.

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

Para la aplicación Webex: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

3

Compruebe las teclas de autenticación con XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> get

4

Si la tecla de autenticación no está vacía para com.broadsoft.uc-one, se puede borrar con XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> clear the-authkey

5

Habilitar HTTP/2:

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

6

Solo para aplicaciones SaaS de UC-One: Inicie sesión en el portal de resellers y vaya a Configuración > BroadWorks > .

7

Desplácese hacia abajo hasta la sección Servidor de inserción de notificaciones y seleccione su versión (por ejemplo, Versión 22) y, a continuación, siga las instrucciones proporcionadas en el portal.

  • Esta tarea se aplica a NPS en XSP. Ignorarlo si su NPS está en ADP.

  • Puede utilizar este procedimiento para migrar a notificaciones de FCMv1 para aplicaciones Android de UC-One Connect o UC-One SaaS.

  • Debe utilizar FCMv1 si desea utilizar el proxy de NPS para autenticar las notificaciones push a UC-One o a las aplicaciones Webex Android.

  • Esta tarea prepara el NPS para FCMv1 para que pueda habilitarlo como parte de la configuración del proxy de autenticación de NPS. No active FCMv1 hasta que esté listo para configurar el proxy de autenticación de NPS, o las notificaciones a los clientes de SaaS fallarán.

1

Obtenga el ID del proyecto en la consola Firebase:

  1. Inicie sesión en console.firebase.google.com.

  2. Seleccione el proyecto de la aplicación UC-One (Connect o SaaS) y abra la configuración del proyecto.

  3. Abra la ficha General y registre el ID de proyecto.

2

Obtenga la clave privada de su cuenta de servicio de Firebase:

  1. Vaya a la ficha Cuentas de servicio en la configuración del proyecto.

  2. Cree una nueva cuenta de servicio y obtenga su clave privada.

  3. O abra una cuenta de servicio existente y genere una nueva clave privada para ella.

    Nota: La cuenta de servicio debe tener el permiso de firebaseadmin-sdk.

  4. Descargue la clave a una ubicación segura.

3

Copie la clave en el XSP que aloja su NPS.

4

Agregue el ID del proyecto y la clave privada asociada al contexto de los proyectos de FCM:

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

5

Agregue la aplicación UC-One (Connect o SaaS) y el ID de proyecto asociado al contexto de aplicaciones de FCM:

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

6

Compruebe la configuración de FCM con los atributos y valores recomendados que se muestran aquí. Utilizar set versión del comando para cambiar valores si es necesario:

Ejecutar XSP_CLI/Applications/NotificationPushServer/FCM> get

Parámetro

Valor recomendado

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

  • Esta tarea se aplica a NPS en ADP. Ignorarlo si su NPS está en XSP.

  • Puede utilizar este procedimiento para migrar a notificaciones de FCMv1 para aplicaciones Android de UC-One Connect o UC-One SaaS.

  • Debe utilizar FCMv1 si desea utilizar el proxy de NPS para autenticar las notificaciones push a UC-One o a las aplicaciones Webex Android.

  • Esta tarea prepara el NPS para FCMv1 para que pueda habilitarlo como parte de la configuración del proxy de autenticación de NPS. No active FCMv1 hasta que esté listo para configurar el proxy de autenticación de NPS, o las notificaciones a los clientes de SaaS fallarán.

1

Obtenga el ID del proyecto en la consola Firebase:

  1. Inicie sesión en console.firebase.google.com.

  2. Seleccione el proyecto de la aplicación UC-One (Connect o SaaS) y abra la configuración del proyecto.

  3. Abra la ficha General y registre el ID de proyecto.

2

Obtenga la clave privada de su cuenta de servicio de Firebase:

  1. Vaya a la ficha Cuentas de servicio en la configuración del proyecto.

  2. Cree una nueva cuenta de servicio y obtenga su clave privada.

  3. O abra una cuenta de servicio existente y genere una nueva clave privada para ella.

    Nota: La cuenta de servicio debe tener el permiso de firebaseadmin-sdk.

  4. Descargue la clave (archivo.json) en una ubicación segura.

3

Importar el archivo .json al servidor de ADP /bw/install.

4

Conéctese a ADP CLI y agregue la clave de proyecto y API al contexto de proyectos de FCM:

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

5

Agregue el ID de aplicación y proyecto al contexto de aplicaciones de FCM:

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

6

Verifique su configuración:

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

Solo tiene que hacerlo (como parte de la migración) si:

  • Su NPS se utiliza para las aplicaciones Android de UC-One SaaS o BroadWorks Connect.

  • Ya probó que las notificaciones push de llamadas a otras aplicaciones funcionan con la API de FCMv1.

Está deshabilitando temporalmente FCMv1 porque las claves FCMv1 para estas aplicaciones solo deben habilitarse durante el proceso de configuración del proxy de autenticación NPS.

1

Inicie sesión en el XSP que aloja su NPS compartido.

2

Diríjase al contexto de FCM y desactive FCM v1: XSP_CLI/Applications/NotificationPushServer/FCM> set V1enabled false para volver a utilizar la clave API heredada de FCM.

1

Cree una solicitud de servicio con su contacto de incorporación, o con el TAC, para aprovisionar su cuenta de cliente OAuth (Webex Common Identity). Asigne el título a su solicitud de servicio Configuración de NPS para la configuración del proxy de autenticación.

Cisco le proporciona un ID de cliente OAuth, un secreto de cliente y un token de actualización que es válido durante 60 días. Si el token caduca antes de utilizarlo con su NPS, puede enviar otra solicitud.
2

Cree la cuenta de cliente en el 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

Para verificar que los valores que introdujo coincidan con los que recibió, ejecute XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client> get

3

Introduzca la URL del proxy de NPS y establezca el intervalo de actualización de tokens (se recomienda 30 minutos):

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

XSP_CLI/Applications/NotificationPushServer/CloudNPSService> set VOIPTokenRefreshInterval 1800

4

(Para notificaciones de Android) Agregue los ID de aplicaciones de Android al contexto de aplicaciones de FCM en el NPS.

Para la aplicación Webex en Android: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add com.cisco.wx2.android

Para la aplicación UC-One en Android: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add com.broadsoft.connect

5

(Para notificaciones de Apple iOS) Agregue el ID de aplicación al contexto de aplicaciones de APNS, asegurándose de omitir la tecla de autenticación: configúrela como vacía.

Para la aplicación de Webex en iOS: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

Para la aplicación UC-One en iOS: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

6

Configure las siguientes URL de NPS:

Tabla 2.

Contexto de CLI de XSP

Parámetro

Valor

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

Configure los siguientes parámetros de conexión NPS con los valores recomendados que se muestran:

Cuadro 3.

Contexto de CLI de XSP

Parámetro

Valor

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

Compruebe si el servidor de aplicaciones está filtrando los ID de aplicaciones, ya que es posible que deba agregar las aplicaciones de Webex a la lista de permitidos:

  1. Ejecutar AS_CLI/System/PushNotification> get y compruebe el valor de enforceAllowedApplicationList. Si es así true, debe completar esta tarea secundaria. De lo contrario, omita el resto de la tarea secundaria.

  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

Reinicie el XSP:

bwrestart
2

Pruebe las notificaciones de llamadas a Android realizando llamadas desde un suscriptor de BroadWorks al cliente que llama en Android. Verifique que la notificación de llamada aparezca en el dispositivo Android.

Nota: Si las notificaciones push comienzan a fallar para la aplicación Android UC-One, es posible que haya una configuración incorrecta. Si esta es su situación, puede volver al FCM heredado de la siguiente manera:

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

  2. Reiniciar XSP: bwrestart

  3. Compruebe su configuración.

  4. Vuelva a habilitar FCMv1 y reinicie XSP.

  5. Repita la prueba.

3

Pruebe las notificaciones de llamadas a iOS realizando llamadas desde un suscriptor de BroadWorks al cliente que llama en iOS. Verifique que la notificación de llamada aparezca en el dispositivo iOS.

Nota: Si las notificaciones push comienzan a fallar para la aplicación iOS UC-One, es posible que haya una configuración incorrecta. Si esta es su situación, puede volver a la interfaz binaria heredada con set HTTP2Enabled false