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


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

Обзор прокси-сервера NPS

В целях обеспечения совместимости с Webex для BroadWorks к вашему приложению NPS необходимо применить исправление для поддержки функций прокси-сервера NPS (Push-сервер для VoIP в UCaaS).

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

Эта функция также расширяет возможности push-сервера уведомлений для передачи 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 и приложение NPS должно быть единственным размещенным приложением на сервере. Это устраняет помехи при доставке push-уведомлений.

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

  • Приложение NPS должно выполняться на платформе XSP/ADP версии R22 или более поздней.

    Платформа 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-интерфейса HTTP v1 FCM.

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

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

Номера APN HTTP/2

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

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

FCMv1 Android

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

  • Если в данный момент платформы XSP/ADP поддерживают приложение Connect или UC-One SaaS, перед настройкой прокси-сервера NPS невозможно включить ключи FCMv1. Мы рекомендуем перенести все дополнительные приложения на ключи 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 и/или другие приложения Android (не Cisco).

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 и настройка времени ожидания токена обновления

  • Добавление идентификаторов приложений Android

  • Добавление идентификаторов приложений iOS

  • Установка/задание URL-адресов и времени ожидания соединения

  • Добавление приложений в белый список AS

  • (Повторное) включение FCMv1

  • Перезапуск XSP/ADP

  • Проверка PN для приложений 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

Добавьте идентификаторы приложений в контекст приложений APNS, опустив ключ аутентификации: задайте для него пустое значение.

Для 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 ключ-аутентификации

5

Включение HTTP/2:

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

6

Только для приложений UC-One SaaS: войдите на портал посредников и перейдите к следующему разделу: Конфигурация > BroadWorks > .

7

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

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

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

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

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

1

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

  1. Выполните вход в console.firebase.google.com.

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

  3. Откройте вкладку Общие и запишите идентификатор проекта.

2

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

  1. В настройках проекта перейдите на вкладку «Учетные записи служб».

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

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

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

  4. Загрузите ключ в защищенное место.

3

Скопируйте ключ на платформу XSP, на которой размещено приложение NPS.

4

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

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

5

Добавьте приложение UC-One (Connect или SaaS) и связанный идентификатор проекта в контекст приложений 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.

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

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

1

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

  1. Выполните вход в console.firebase.google.com.

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

  3. Откройте вкладку Общие и запишите идентификатор проекта.

2

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

  1. В настройках проекта перейдите на вкладку «Учетные записи служб».

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

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

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

  4. Загрузите ключ (.json file) в безопасное место.

3

Импортируйте данный файл .json на сервер ADP в каталог /bw/install.

4

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

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

5

Добавьте идентификатор приложения и проекта в контекст приложений 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.

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

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

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

1

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

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) Добавьте идентификаторы приложений 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) Добавьте идентификатор приложения в контекст приложений APNS, опустив ключ аутентификации — задайте для него пустое значение.

Для приложения 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

Параметр

Значение

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.

Контекст интерфейса командной строки 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

Убедитесь, что сервер приложений проверяет идентификаторы приложений, поскольку может потребоваться добавить приложения 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-уведомления перестают отображаться для приложения UC-One под управлением Android, это может быть вызвано неправильной конфигурацией. В такой ситуации можно вернуться к устаревшему режиму 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