Обзор прокси-сервера аутентификации NPS


В этой статье описана настройка NPS в совместном доступе для использования прокси-сервера аутентификации NPS, чтобы его можно было также использовать для push-уведомлений о вызовах в приложениях Webex. Если NPS не поддерживает другие приложения, следуйте упрощенной процедуре в руководстве по решению Webex для BroadWorks https://help.webex.com/z9gt5j.

Обзор прокси NPS

Для совместимости с Webex для BroadWorks ваши NPS должны быть исправлены для поддержки функции прокси NPS, извещающего сервера для VoIP в UCaaS.

Эта функция реализует новый дизайн сервера push-уведомлений для устранения уязвимости безопасности, связанной с совместным использованием закрытых ключей сертификата push-уведомлений с поставщиками услуг для мобильных клиентов. Вместо того, чтобы делиться сертификатами и ключами push-уведомлений с поставщиком услуг, NPS использует новый API для получения краткосрочного токена push-уведомлений из серверной части UCaaS и использует этот токен для аутентификации с помощью Apple APN и служб Google FCM.

Эта функция также повышает возможности сервера push-уведомлений по отправке уведомлений на устройства Android через новый API HTTPv1 Google Firebase Cloud Messaging (FCM).

Исправления BroadWorks для этой функции доступны в Xchange: https://xchange.broadsoft.com/node/1046235

Для получения дополнительной информации см. сервер push-уведомлений для VoIP в описании функции UCaaS на сервере Xchange: https://xchange.broadsoft.com/node/1045458

XSP (или платформа разработки программных приложений ADP), в которой размещен NPS, должен отвечать следующим требованиям:

Минимальные ограничения для версий и совместному размещению

  • NPS должен быть активирован на выделенном сервере XSP/ADP и должен быть единственным серверным приложением на сервере. Это необходимо для устранения конфликтов при доставке push-уведомлений.

  • В развертывании должно быть только одно приложение NPS. Если вы используете UC-One Collaborate/Connect и UC-One SaaS и внедряете Webex для BroadWorks, вам необходимо использовать этот единый NPS для всех приложений.

  • NPS должен иметь версию R22 или более новую версию XSP или ADP.

    R22/R23 XSP совместим со стеком R21, XSP работает только с NPS, а AS – R21.SP1. Для получения дополнительной информации см. матрицу совместимости BroadWorks.

  • Более подробную информацию о сервере ADP можно найти на https://xchange.broadsoft.com/node/1051580.

Совместно используемый NPS

Прочитайте эти примечания перед настройкой совместно используемого NPS для использования прокси-сервера NPS.

  • Если NPS используется в других приложениях (а не только в приложении Webex), До настройки прокси-сервера NPS не изменяйте NPS с использования устаревшего API FCM на использование API FCM HTTP v1.

    Это можно изменить при настройке NPS для использования прокси-сервера NPS.

  • После проверки правильной работы уведомлений для более старых приложений с прокси-сервером NPS можно удалить ключ API FCM для приложения Android, а также ключ проверки ANS для приложения iOS.

APNs HTTP/2

  • Если все приложения iOS развернуты не из Cisco/BroadSoft, настройте эти приложения для использования протокола HTTP/2 APNS, прежде чем настроить NPS для использования прокси-сервера NPS.

  • XSP/ADP, которые уже поддерживают работу или приложение SaaS BroadWorks, необходимо перенести на HTTP/2. Подробную информацию о настройке HTTP/2 см. в статье Поддержка HTTP/2 на сервере push-уведомлений для APNS (миграция NPS для поддержки этих приложений iOS описана в этой статье).

Android FCMv1

  • Если все приложения Android развернуты не из Cisco/BroadSoft, настройте эти приложения для использования ключей FCMv1, прежде чем настроить NPS на использование прокси-сервера NPS.

  • Если XSP/ADP в настоящее время поддерживает приложение Connect или UC-One SaaS, ключи FCMv1 нельзя включить до настройки прокси NPS. Рекомендуется перенести все дополнительные приложения в ключи FCMv1, включить и протестировать, а затем отключить, пока вы не будете готовы выполнить инструкции по настройке (процесс миграции описан в этой статье).

Рисунок 1. Визуальная сводка миграции на прокси-сервер аутентификации NPS
Таблица 1. Сводная информация о задачах, которые необходимо перенести на прокси-сервер NPS

Последовательность

Заголовок задачи

Когда/почему требуется задача?

1

Перенос NPS на HTTP/2 для приложений UC-One SaaS (или Connect) iOS.

Если NPS поддерживает эти приложения и они еще не настроены для HTTP/2.

2

Перенести NPS в FCMv1 для приложений UC-One SaaS (или Connect) Android.

Если NPS поддерживает эти приложения и они еще не настроены для FCMv1.

3

Включить режим FCMv1 и протестировать push-уведомления.

Если NPS поддерживает UC-One Connect и/или другие (не Cisco) приложения Android.

4

Повторно включить устаревший режим FCM.

Если NPS поддерживает UC-One SaaS. Если fcMv1 не включен до настройки прокси NPS, push-уведомления в UC-One SaaS перестают работать.

5

Установите исправления прокси-сервера аутентификации NPS.

Если NPS находится на XSP R22 или XSP R23.

6

Настроить NPS для использования прокси-сервера аутентификации NPS.

  • Подключить техподдержку из NPS

  • Запросить учетную запись CI OAuth

  • Создать учетную запись CI на NPS и настроить время простоя маркера обновления

  • Добавить ids приложения Android

  • Добавить iDs приложений iOS

  • Проверить/настроитть URL-адреса и время подключения

  • Добавить приложения в список разрешений AS

  • (повторно) Включить FCMv1

  • Перезапустить XSP / ADP

  • Проверить PNS для приложений iOS и Android

Всегда необходимо.

7

Удалите клавиши с устаревшим режимом FCM.

Для приложений, которые успешно поддерживаются NPS на FCMv1.

Эта задача является обязательной для push-уведомлений в приложениях UC-One SaaS и Webex на платформах iOS.

Подготовка к работе

Если ваш XSP работает на R22, необходимо применить ap354313, прежде чем вы сможете настроить приложение NPS на использование HTTP/2 для APNS.

1

Установите URL-адрес сети и параметры соединения по адресу XSP_CLI/Applications/NotificationPushServer/APNS/Production>

задайте URL https://api.push.apple.com/3/device

задайте connectionPoolSize 2

задайте connectionTimeout 3000

задайте connectionIdleTimeoutInSeconds 600

Примечание: Не устанавливайте период времени подключения ниже 1000.

2

Добавьте iD приложений в контекст приложений APNS, опустите ключ Auth и задайте его пустым.

Для UC-one SaaS:XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.broadsoft.uc-one

Для приложения Webex. XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

3

Проверьте ключи auth с помощью XSP_CLI/приложений/NotificationPushServer/APNS/Production/Tokens> get

4

Если ключ auth не пуст для com.broadsoft.uc-one, очистить его можно с помощьюXSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens>clear authkey (очистить ключ auth)

5

Включить HTTP/2:

XSP_CLI/Applications/NotificationPushServer/APNS/GeneralSettings> установите http2Enabled true

6

Только для приложений UC-One SaaS. Войдите на портал посредника и перейдите в Configuration (Конфигурация) > BroadWorks > .

7

Прокрутите страницу вниз до раздела Notification Push Server (Сервер push-уведомлений) и выберите свой выпуск (например, Выпуск 22), затем следуйте инструкциям на портале.

  • Эта задача относится к NPS в XSP. Игнорируйте ее, если ваш NPS находится на ADP.

  • Эту процедуру можно использовать для миграции уведомлений FCMv1 для приложений UC-One Connect или UC-One SaaS Android.

  • Вы должны использовать FCMv1, если хотите использовать прокси-сервер NPS для аутентификации push-уведомлений для UC-One или приложений Webex на Android.

  • Эта задача подготавливает NPS для FCMv1, чтобы вы могли включить его как часть конфигурации прокси-сервера аутентификации NPS. Не включайте FCMv1, пока не будете готовы настроить прокси-сервер аутентификации NPS, или уведомления клиентов SaaS будут неуспешными.

1

Получите ID проекта с консоли Firebase:

  1. Войдите в console.firebase.google.com.

  2. Выберите проект приложения UC-One (Connect или SaaS), откройте настройки проекта.

  3. Откройте вкладку General (Общие) и запишите ID проекта.

2

Получите закрытый ключ учетной записи службы из Firebase:

  1. Перейдите на вкладку Service accounts (Учетные записи служб) в настройках проекта.

  2. Создайте новую учетную запись службы и получите ее закрытый ключ.

  3. Или откройте существующую учетную запись службы и сгенерируйте для нее новый закрытый ключ.

    Примечание: Учетная запись службы должна иметь разрешение firebaseadmin-sdk.

  4. Скачайте ключ в безопасное расположение.

3

Скопируйте ключ в хостинг XSP, на котором размещены ваши NPS.

4

Добавьте ID проекта и связанный с ним закрытый ключ в контекст проектов FCM.

XSP_CLI/Applications/NotificationPushServer/FCM/Projects> добавить путь/к/keyfile для id проекта

5

Добавьте приложение UC-One (Connect или SaaS) и связанный с ним iD проекта в контекст приложений FCM.

XSP_CLI/Applications/NotificationPushServer/FCM/Applications> добавить id проекта applicationId com.broadsoft.connect projectId

6

Проверьте конфигурацию FCM на соответствие атрибутов и рекомендуемых значений, приведенным здесь. Используйте настроенную версию команды для изменения значений при необходимости:

Запустите XSP_CLI/Applications/notificationPushServer/FCM> получить

Параметр

Рекомендуемое значение

authURL

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

pushURL

https://fcm.googleapis.com/v1/projects/ID проекта/messages:send

область действия

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

tokenTimeToLiveInSeconds

3600

connectionPoolSize

10

connectionTimeoutInMilliseconds

3000

connectionIdleTimeoutInSeconds

600

  • Эта задача относится к NPS на ADP. Игнорируйте ее, если ваш NPS в XSP.

  • Эту процедуру можно использовать для миграции уведомлений FCMv1 для приложений UC-One Connect или UC-One SaaS для Android.

  • Вы должны использовать FCMv1, если хотите использовать прокси-сервер NPS для аутентификации push-уведомлений для UC-One или приложений Webex на Android.

  • Эта задача подготавливает NPS для FCMv1, чтобы вы могли включить его как часть конфигурации прокси-сервера аутентификации NPS. Не включайте FCMv1, пока не будете готовы настроить прокси-сервер аутентификации NPS, или уведомления клиентов SaaS будут неуспешными.

1

Получите ID проекта с консоли Firebase:

  1. Войдите в console.firebase.google.com.

  2. Выберите проект приложения UC-One (Connect или SaaS), откройте настройки проекта.

  3. Откройте вкладку General (Общие) и запишите ID проекта.

2

Получите закрытый ключ учетной записи службы из Firebase:

  1. Перейдите на вкладку Service accounts (Учетные записи служб) в настройках проекта.

  2. Создайте новую учетную запись службы и получите ее закрытый ключ.

  3. Или откройте существующую учетную запись службы и сгенерируйте для нее новый закрытый ключ.

    Примечание: Учетная запись службы должна иметь разрешение firebaseadmin-sdk.

  4. Скачайте ключ (файл .json) в безопасное расположение.

3

Импортируйте файл .json в ADP server /bw/install.

4

Войдите в ADP CLI, добавьте проект и ключ API в контекст проектов FCM:

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

5

Добавьте iD приложения и проекта в контекст приложений FCM.

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

6

Подтвердите коонфигурацию:


  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

Это необходимо сделать (в рамках миграции), если:

  • NPS используется для приложений UC-One SaaS или BroadWorks Connect для Android.

  • Вы уже проверили, что push-уведомления о вызовах в другие приложения работают с API FCMv1.

Вы временно отключаете FCMv1, поскольку ключи FCMv1 для этих приложений должны быть включены только во время процесса настройки прокси-сервера аутентификации NPS.

1

Войдите на хостинг XSP, где размещены ваши NPS в совместном доступе.

2

Перейдите в контекст FCM и отключите FCM v1: XSP_CLI/Applications/NotificationPushServer/FCM> задав значение V1enabled false для повторного использования устаревшего ключа API FCM.

Установите следующие исправления для поддержки функции прокси-сервера аутентификации NPS.

Исправления R22

Исправления R23

1

Создайте сервисный запрос вместе с контактом или TAC, чтобы предоставить клиентскую учетную запись OAuth (Общие параметры идентификации Webex Common). Озаглавьте запрос на обслуживание Конфигурация NPS для настройки прокси-сервера Auth.

Cisco предоставляет вам ID клиента OAuth, секретный токен клиента и токен обновления, который действителен в течение 60 дней. Если срок действия токена истекает до его использования с NPS, можно сделать еще один запрос.
2

Создайте учетную запись клиента в 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

Чтобы проверить соответствие введенного значения с предоставленными, запустите XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client> get

3

Введите URL прокси-сервера NPS и установите интервал обновления токена (рекомендуется установить значение 30 минут):

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

XSP_CLI/Applications/NotificationPushServer/CloudNPSService> set VOIPTokenRefreshInterval 1800

4

(Для уведомлений Android) Добавьте ID приложений Android в контекст FCM на NPS.

Для приложения Webex на Android: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add applicationId com.cisco.wx2.android

Для приложения UC-One на Android: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add applicationId com.broadsoft.connect

5

(Для уведомлений Apple iOS) Добавьте iD приложения в контекст приложений APNS, опустите ключ Auth и задайте его пустым.

Для приложения Webex на iOS: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

Для приложения UC-One на iOS: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

6

Настройте приведенные ниже URL-адреса NPS:

Таблица 2.

Контекст XSP CLI

Параметр

Значение

XSP_CLI/Applications/NotificationPushServer/FCM>

authURL

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

pushURL

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

область действия

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

XSP_CLI/Applications/NotificationPushServer/APNS/Production>

url

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

7

Настройте следующие параметры соединения NPS для рекомендуемых значений, приведенных ниже:

Таблица 3.

Контекст XSP CLI

Параметр

Значение

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

Убедитесь, что сервер приложений проверяет ID приложений, поскольку вам может потребоваться добавить приложения Webex в список разрешенных:

  1. Запустите AS_CLI/System/PushNotification> get и проверьте значениеenforceAllowedApplicationList. Если оно true, необходимо выполнить эту подзадачу. В противном случае пропустите остальную часть подзадачи.

  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

Перезапуск XSP:

bwrestart
2

Проверьте уведомления о вызовах на Android, совершив звонки от подписчика BroadWorks на вызывающий клиент на Android. Убедитесь, что уведомление о вызове отображается на устройстве Android.

Примечание: Если push-уведомления для Android-приложения UC-One не работают, возможно, была выполнена неправильная настройка. В таком случае вы можете вернуться к устаревшим FCM следующим образом:

  1. Отключить FCMv1: XSP_CLI/Applications/NotificationPushServer/FCM> set V1Enabled false

  2. Перезапуск XSP: bwrestart

  3. Проверьте конфигурацию.

  4. Повторно включите FCMv1 и перезапустите XSP.

  5. Повторите проверку.

3

Проверьте уведомления о вызовах на iOS, совершив звонки от подписчика BroadWorks на вызывающий клиент на iOS. Убедитесь, что уведомление о вызове отображается на устройстве iOS.

Примечание: Если push-уведомления не работают для приложения UC-One для iOS, возможно, была выполнена неправильная настройка. Если это ваша ситуация, можно вернуться к устаревшему двоичному интерфейсу с помощью усанновки HTTP2Enabled false