Обзор прокси-сервера аутентификации 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 Google Firebase Cloud Messaging (FCM) HTTPv1.

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 на использование FCM HTTP v1 API FCM.

  • После проверки правильности работы уведомлений для старых приложений с прокси-сервером NPS удалите ключ API FCM для приложения Android и ключ аутентификации APN для приложения 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>

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

set connectionPoolSize 2

set connectionTimeout 3000

set 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.

Проверьте ключи аутентификации с помощью XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> get

4.

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

5

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

XSP_CLI/Applications/NotificationPushServer/APNS/GeneralSettings> set 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> add project-id path/to/keyfile

5

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

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

6

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

Выполните команду XSP_CLI/Applications/NotificationPushServer/FCM> get

Параметр

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

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

  • Эта задача относится к 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 /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> set V1enabled false для возврата к использованию устаревшего ключа API FCM.

1.

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

Компания Cisco предоставит вам идентификатор клиента 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 com.cisco.wx2.android

Для приложения UC-One на Android: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add 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.

Контекст CLI XSP

Параметр

Значение

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.

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

Таблица 3.

Контекст CLI XSP

Параметр

Значение

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, возможно, была выполнена неправильная настройка. Если это ваша ситуация, вы можете вернуться к старому двоичному интерфейсу с set HTTP2Enabled false