Visão geral do proxy de autenticação NPS


Este artigo descreve como configurar um NPS compartilhado para usar o proxy de autenticação NPS, de modo que ele também possa ser usado para enviar notificações de chamada para aplicativos Webex. Se seu NPS não suporta outros aplicativos, você pode seguir o procedimento simplificado no Guia de soluções Webex para BroadWorks https://help.webex.com/z9gt5j.

Visão geral do proxy NPS

Para compatibilidade com o Webex para BroadWorks, seu NPS deve ser corrigido para suportar o recurso de proxy NPS, Push Server para VoIP em UCaaS .

O recurso implementa um novo design no servidor Push de notificação para resolver a vulnerabilidade de segurança do compartilhamento de chaves privadas do certificado de notificação por push com provedores de serviços para clientes móveis. Em vez de compartilhar certificados e chaves de notificação por push com o provedor de serviços, o NPS usa uma nova API para obter um token de notificação por push de curta duração do back-end do UCaaS e usa esse token para autenticação com os serviços APNs da Apple e Google FCM.

O recurso também aprimora a capacidade do servidor Push de notificação para enviar notificações para dispositivos Android por meio da nova API HTTPv1 do Google Firebase Cloud Messaging (FCM).

O XSP (ou o ADP da plataforma de entrega de aplicativos) que hospeda o NPS deve atender aos seguintes requisitos:

Versões mínimas e restrições de coresidência

  • O NPS deve ser ativado em um XSP/ADP dedicado e o NPS deve ser o único aplicativo hospedado no servidor. Isso é para eliminar a interferência com a entrega de notificações Push.

  • Deve haver apenas um aplicativo NPS em uma implantação. Se você estiver usando UC-One móvel Colaborar/Conectar e ou UC-One SaaS e estiver implementando o Webex para BroadWorks, você deve compartilhar este único NPS para todos os aplicativos.

  • O NPS deve estar na versão R22 ou XSP posterior ou ADP.

    R22/R23 XSP é compatível com uma pilha R21 se o XSP only executa o NPS e o AS é R21.SP1. Consulte a Matriz de compatibilidade do BroadWorks para obter mais informações.

  • Mais informações sobre o servidor ADP podem ser encontradas em https://xchange.broadsoft.com/node/1051580.

NPS compartilhado

Leia estas notas antes de configurar o NPS compartilhado para usar o Proxy NPS:

  • Se seu NPS for usado com outros aplicativos (não apenas com o aplicativo Webex): Primeiro, configure o proxy NPS e, em seguida, altere o NPS de usar a API herdada do FCM para usar a API v1 do FCM HTTP.

  • Depois de ter verificado que as notificações estão funcionando corretamente para aplicativos mais antigos com o proxy NPS, em seguida, remova a chave de API FCM para o aplicativo Android e a chave de autenticação APNs para o aplicativo iOS.

HTTP/2 de APNs

  • Se você tiver implantado aplicativos iOS que não são da Cisco/BroadSoft, configure esses aplicativos para usar o protocolo APNS HTTP/2 antes de configurar o NPS para usar o proxy NPS.

  • XSP/ADPs que já suportam o aplicativo Collaborate ou SaaS BroadWorks precisam ser migrados para HTTP/2. Para obter informações detalhadas sobre como configurar o HTTP/2, consulte Suporte do HTTP/2 para o servidor Push de notificação para APNS (a migração do NPS para suportar esses aplicativos iOS é resumida neste artigo).

Android FCMv1

  • Se você tiver implantado aplicativos Android que não são da Cisco/BroadSoft, configure esses aplicativos para usar as teclas FCMv1 antes de configurar o NPS para usar o proxy NPS.

  • Se o XSP/ADP atualmente suportar o aplicativo Connect ou UC-One SaaS, ative as teclas FCMv1 após configurar o proxy NPS. Recomendamos que você migre todos os aplicativos adicionais para as teclas FCMv1, ative e teste e desative até que esteja pronto para concluir as instruções de configuração (o fluxo de migração está documentado neste artigo).

Figura 1. Resumo visual da migração para o proxy de autenticação NPS
Tabela 1. Resumo das tarefas a serem migradas para o proxy NPS

Sequência

Título da tarefa

Quando/Por que a tarefa é necessária?

1

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

Se o NPS suportar esses aplicativos e eles ainda não estiverem configurados para HTTP/2.

2

Migre o NPS para o FCMv1 para aplicativos Android UC-One SaaS (ou Connect).

Se o NPS suportar esses aplicativos e eles ainda não estiverem configurados para o FCMv1.

3

Ative o modo FCMv1 e teste as notificações por push.

Se o NPS estiver suportando o UC-One Connect e/ou outros aplicativos Android (não Cisco).

4

Reative o modo herdado do FCM.

Se o NPS estiver suportando o UC-One SaaS. Se você deixar o FCMv1 ativado, antes de configurar o proxy NPS, as notificações por push do UC-One SaaS começam a falhar.

5

Instale patches de proxy de autenticação NPS.

Se o NPS estiver no XSP R22 ou XSP R23.

6

Configure o NPS para usar o proxy de autenticação NPS:

  • Anexar suporte técnico do NPS

  • Solicitar conta CI OAuth

  • Criar conta CI no NPS e configurar o tempo limite do token de atualização

  • Adicionar IDs do aplicativo Android

  • Adicionar IDs do aplicativo iOS

  • Verificar/definir URLs e limites de tempo de conexão

  • Adicionar aplicativos à lista de permissões do AS

  • (Re-)Ativar FCMv1

  • Reiniciar XSP / ADP

  • Teste as PNs dos aplicativos iOS e Android

Sempre necessário.

7

Remova as chaves do modo herdado do FCM.

Para aplicativos que são suportados com êxito pelo NPS no FCMv1.

Esta tarefa é obrigatória para notificações por push para aplicativos UC-One SaaS e Webex em plataformas iOS.

Antes de você começar

Se o XSP estiver executando o R22, você precisará aplicar o ap354313 antes de configurar o aplicativo NPS para usar HTTP/2 para APNS.

1

Defina a URL de produção e os parâmetros de conexão em 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: Não defina o tempo limite da conexão abaixo de 1000.

2

Adicione as IDs dos aplicativos ao contexto dos aplicativos APNS, certificando-se de omitir a chave de autenticação - defina-a como vazia.

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

Para o aplicativo Webex: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

3

Verifique as teclas de autenticação com XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> get

4

Se a chave de autenticação não estiver vazia para com.broadsoft.uc-one, você pode limpar com XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> clear the-authkey

5

Ativar HTTP/2:

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

6

Apenas para aplicativos UC-One SaaS: Inicie sessão no portal do revendedor e vá para Configuração > BroadWorks > .

7

Role para baixo até a seção Servidor Push de notificação e selecione sua versão (por exemplo, Versão 22 ) e siga as instruções fornecidas no portal.

  • Esta tarefa se aplica ao NPS no XSP. Ignore-o se seu NPS estiver no ADP.

  • Você pode usar este procedimento para migrar para notificações FCMv1 para aplicativos Android UC-One Connect ou UC-One SaaS.

  • Você deve usar FCMv1 se desejar usar o proxy NPS para autenticar notificações push para o UC-One ou os aplicativos Webex para Android.

  • Esta tarefa prepara o NPS para FCMv1 para que você possa ativá-lo como parte da configuração do proxy de autenticação NPS. Não ative o FCMv1 até que você esteja pronto para configurar o proxy de autenticação NPS ou as notificações aos clientes SaaS falharão.

1

Obtenha a ID do projeto do console Firebase:

  1. Inicie sessão em console.firebase.google.com.

  2. Selecione o projeto do aplicativo UC-One (Connect ou SaaS) e abra as configurações do projeto.

  3. Abra a guia Geral e grave a ID do projeto.

2

Obtenha a chave privada da sua conta de serviço do Firebase:

  1. Navegue até a guia Contas de serviço nas configurações do projeto.

  2. Crie uma nova conta de serviço e obtenha sua chave privada.

  3. Ou abra uma conta de serviço existente e gere uma nova chave privada para ela.

    Nota: A conta de serviço deve ter a permissão firebaseadmin-sdk .

  4. Baixe a chave para um local seguro.

3

Copie a chave para o XSP que hospeda seu NPS.

4

Adicione a ID do projeto e a chave privada associada ao contexto dos projetos FCM:

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

5

Adicione o aplicativo UC-One (Connect ou SaaS) e a ID do projeto associada ao contexto dos aplicativos FCM:

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

6

Verifique a configuração do FCM em relação aos atributos e valores recomendados mostrados aqui. Usar set versão do comando para alterar valores, se necessário:

Execute 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 tarefa se aplica a NPS no ADP. Ignore-o se seu NPS estiver no XSP.

  • Você pode usar este procedimento para migrar para notificações FCMv1 para aplicativos Android UC-One Connect ou UC-One SaaS.

  • Você deve usar FCMv1 se desejar usar o proxy NPS para autenticar notificações push para o UC-One ou os aplicativos Webex para Android.

  • Esta tarefa prepara o NPS para FCMv1 para que você possa ativá-lo como parte da configuração do proxy de autenticação NPS. Não ative o FCMv1 até que você esteja pronto para configurar o proxy de autenticação NPS ou as notificações aos clientes SaaS falharão.

1

Obtenha a ID do projeto do console Firebase:

  1. Inicie sessão em console.firebase.google.com.

  2. Selecione o projeto do aplicativo UC-One (Connect ou SaaS) e abra as configurações do projeto.

  3. Abra a guia Geral e grave a ID do projeto.

2

Obtenha a chave privada da sua conta de serviço do Firebase:

  1. Navegue até a guia Contas de serviço nas configurações do projeto.

  2. Crie uma nova conta de serviço e obtenha sua chave privada.

  3. Ou abra uma conta de serviço existente e gere uma nova chave privada para ela.

    Nota: A conta de serviço deve ter a permissão firebaseadmin-sdk .

  4. Baixe a chave (.json file) para um local seguro.

3

Importar o arquivo .json para o servidor ADP /bw/install.

4

Faça login no ADP CLI e adicione a chave de projeto e API ao contexto dos projetos FCM:

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

5

Adicione o ID do aplicativo e do projeto ao contexto dos aplicativos FCM:

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

6

Verifique sua configuração:

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

Você só precisará fazer isso (como parte da migração) se:

  • Seu NPS é usado para aplicativos UC-One SaaS ou BroadWorks Connect Android.

  • Você já testou se as notificações por push de chamadas para outros aplicativos estão funcionando com a API FCMv1.

Você está desativando temporariamente o FCMv1 porque as teclas FCMv1 desses aplicativos devem apenas ser ativadas durante o processo de configuração do proxy de autenticação NPS.

1

Inicie sessão no XSP hospedando o NPS compartilhado.

2

Navegue até o contexto da FCM e desative o FCM v1: XSP_CLI/Applications/NotificationPushServer/FCM> set V1enabled false para reverter para usar a chave de API herdada do FCM.

1

Crie uma solicitação de serviço com seu contato de integração ou com o TAC para provisionar sua conta de cliente (Webex Common Identity) OAuth. Título da sua solicitação de serviço Configuração NPS para configuração de proxy de autenticação .

A Cisco fornece uma ID de cliente OAuth, um segredo do cliente e um token de atualização válido por 60 dias. Se o token expirar antes de usá-lo com seu NPS, você poderá levantar outra solicitação.
2

Crie a conta do cliente no 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 os valores inseridos correspondem ao que você recebeu, execute XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client> get

3

Insira a URL de proxy NPS e defina o intervalo de atualização do token (30 minutos recomendado):

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

XSP_CLI/Applications/NotificationPushServer/CloudNPSService> set VOIPTokenRefreshInterval 1800

4

(Para notificações Android) Adicione os IDs dos aplicativos Android ao contexto dos aplicativos FCM no NPS.

Para o aplicativo Webex no Android: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add com.cisco.wx2.android

Para o aplicativo UC-One no Android: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add com.broadsoft.connect

5

(Para notificações iOS da Apple) Adicione a ID do aplicativo ao contexto dos aplicativos APNS, certificando-se de omitir a chave de autenticação - defina-a como vazia.

Para o aplicativo Webex no iOS: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

Para o aplicativo UC-One no iOS: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

6

Configure as seguintes URLs de NPS:

Tabela 2.

Contexto de CLI 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 os seguintes parâmetros de conexão NPS para os valores recomendados mostrados:

Tabela 3.

Contexto de CLI 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

Verifique se o servidor de aplicativos está filtrando IDs de aplicativos, pois você pode precisar adicionar os aplicativos Webex à lista de permissões:

  1. Execute AS_CLI/System/PushNotification> get e verifique o valor de enforceAllowedApplicationList. Se for true, você precisa concluir esta subtarefa. Caso contrário, pule o resto da subtarefa.

  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 o XSP:

bwrestart
2

Teste as notificações de chamadas para o Android fazendo chamadas de um assinante do BroadWorks ao cliente de chamadas no Android. Verifique se a notificação de chamada aparece no dispositivo Android.

Nota: Se as notificações push começarem a falhar no aplicativo Android UC-One, é possível que haja uma configuração incorreta. Se esta for sua situação, você pode reverter para o FCM herdado da seguinte forma:

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

  2. Reinicie o XSP: bwrestart

  3. Verifique sua configuração.

  4. Reative o FCMv1 e reinicie o XSP.

  5. Repita o teste.

3

Teste as notificações de chamadas para iOS fazendo chamadas de um assinante do BroadWorks para o cliente de chamadas no iOS. Verifique se a notificação de chamada aparece no dispositivo iOS.

Nota: Se as notificações push começarem a falhar no aplicativo iOS UC-One, é possível que haja uma configuração incorreta. Se esta for sua situação, você pode reverter para a interface binária herdada com set HTTP2Enabled false