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, para que também possa ser usado para notificações de chamada para aplicativos Webex. Se o NPS não suporta outros aplicativos, você pode seguir o procedimento simplificado no Guia de solução Webex para BroadWorks https://help.webex.com/z9gt5j.

Visão geral do proxy NPS

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

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

O recurso também aprimora a capacidade do Servidor de Envio de Notificação para enviar notificações para dispositivos Android através da nova API do Google Firebase Cloud Messaging (FCM) HTTPv1.

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

Versões mínimas e restrições de co-residência

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

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

  • NPS deve estar na versão R22 ou mais recente XSP ou ADP.

    R22/R23 XSP é compatível com uma stack R21 se o XSP executa apenas 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 compartilhados

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

  • Se o SEU NPS é usado com outros aplicativos (não apenas com o aplicativo Webex): Primeiro configure o proxy NPS, depois altere o NPS de usar a API herdada de FCM para usar a API FCM HTTP v1.

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

APNs HTTP/2

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

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

Android FCMv1

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

  • Se XSP/ADP atualmente suporta o aplicativo Connect ou UC-One SaaS, então ative as teclas FCMv1 depois de configurar o proxy NPS. Recomendamos que você migre todos os aplicativos adicionais para as teclas FCMv1, ative e teste, em seguida, 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 Proxy de Autenticação NPS
Tabela 1. Resumo de tarefas para migrar para o proxy NPS

Seqüência

Título da tarefa

Quando/Por que a tarefa é necessária?

1

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

Se o NPS suporta esses aplicativos, e eles ainda não estão configurados para HTTP/2.

2

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

Se o NPS suporta esses aplicativos, e eles ainda não estão configurados para FCMv1.

3

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

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

4

Reabilitar o modo de legado FCM.

Se o NPS estiver suportando UC-One SaaS. Se você deixar FCMv1 habilitado, antes de configurar o proxy NPS, as notificações por push para UC-One SaaS começarão 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

  • Crie uma conta CI no NPS e configure o tempo de atualização do token

  • Adicionar ids de aplicativos Android

  • Adicionar ids de aplicativo iOS

  • Verificar/definir URLs e tempos de conexão

  • Adicionar aplicativos à lista de permitir AS

  • (Re-) Ativar FCMv1

  • Reiniciar XSP/ADP

  • PNs de teste para aplicativos iOS e Android

Sempre necessário.

7

Remova as teclas do modo de legado FCM.

Para aplicativos que são suportados com sucesso pelo NPS em FCMv1.

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

Antes de começar

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

1

Definir 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 de definir o tempo de conexão abaixo de 1000.

2

Adicione as IDs do aplicativo ao contexto dos aplicativos APNS, certifique-se de omitir a tecla Auth - de definida como vazia.

Para Saas UC-One: 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 aut com XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> get

4

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

5

Habilitar HTTP/2:

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

6

Para apenas aplicativos SaaS UC-One: Acesse o 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), em seguida, siga as instruções fornecidas no portal.

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

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

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

  • Esta tarefa prepara o NPS para FCMv1 para que você possa habilita-lo como parte da configuração do proxy de autenticação NPS. Não habilita 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

Obter a ID do projeto a partir do console do Firebase:

  1. Faça o sign in para console.firebase.google.com.

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

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

2

A partir do Firebase, a chave privada da sua conta de serviço:

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

  2. Crie uma nova conta de serviço e ad private key.

  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 de 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 associado ao contexto de aplicativos FCM:

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

6

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

Executar 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 ao NPS no ADP. Ignore-o se seu NPS estiver em XSP.

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

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

  • Esta tarefa prepara o NPS para FCMv1 para que você possa habilita-lo como parte da configuração do proxy de autenticação NPS. Não habilita 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

Obter a ID do projeto a partir do console do Firebase:

  1. Faça o sign in para console.firebase.google.com.

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

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

2

A partir do Firebase, a chave privada da sua conta de serviço:

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

  2. Crie uma nova conta de serviço e ad private key.

  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 (arquivo .json) para um local seguro.

3

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

4

Faça logon ao ADP CLI e adicione a chave de PROJETO e API ao contexto de projetos FCM:

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

5

Adicione o aplicativo e a ID do projeto ao contexto de 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ó precisa fazer isso (como parte da migração) se:

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

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

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

1

Entrar no XSP que está hospedando o seu NPS compartilhado.

2

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

1

Crie uma solicitação de serviço com o seu contato de integração, ou com o TAC, para provisionar sua conta de cliente OAuth (webex Common Identity) . Titulo a sua solicitação de serviço Configuração NPS para Configuração de Proxy de Aut.

A Cisco fornece a você uma ID do 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 o seu NPS, você pode 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 se os valores que você entrou está de acordo com o que você recebeu, execute XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client> get

3

Insira a URL do proxy NPS e de definida 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 do Android) Adicione as IDs do aplicativo 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 as notificações do iOS da Apple) Adicione a ID do aplicativo ao contexto dos aplicativos APNS, certifique-se de omitir a tecla Auth - de definida 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 NPS:

Tabela 2.

Contexto 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 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 Aplicação está solicitando IDs de aplicativos, porque você pode precisar adicionar os aplicativos Webex à lista de permitir:

  1. Executar AS_CLI/System/PushNotification> get e verificar o valor da enforceAllowedApplicationList. Se for true, você precisa concluir esta sub-tarefa. Caso contrário, pule o resto da sub tarefa.

  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 para o cliente de chamada no Android. Verifique se a notificação de chamada é exibida no dispositivo Android.

Nota: Se as notificações por push começar a falhar no aplicativo UC-One para Android, é possível que haja um erro de configuração. Se esta for a 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. Reiniciar XSP: bwrestart

  3. Verifique sua configuração.

  4. Reabilitar FCMv1 e reinicie o XSP.

  5. Repita o teste.

3

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

Nota: Se as notificações por push começar a falhar no aplicativo iOS UC-One, é possível que haja um erro de configuração. Se esta for a sua situação, você pode reverter para a interface binário de legado com set HTTP2Enabled false