Огляд проксі-сервера автентифікації NPS


У цій статті описано, як налаштувати спільний NPS для використання проксі-сервера автентифікації NPS, щоб його також можна було використовувати для надсилання сповіщень про виклики до програм Webex. Якщо ваш NPS не підтримує інші програми, ви можете виконати спрощену процедуру в Посібнику з рішення Webex для BroadWorks.https://help.webex.com/z9gt5j .

Огляд проксі-сервера NPS

Для сумісності з Webex для BroadWorks ваш NPS має бути виправлений для підтримки функції проксі NPS, Push-сервер для VoIP в UCaaS .

Ця функція реалізує новий дизайн у Notification Push Server, щоб усунути вразливість безпеки, пов’язану зі наданням спільного доступу до приватних ключів сертифіката push-повідомлень із постачальниками послуг для мобільних клієнтів. Замість надання спільного доступу до сертифікатів і ключів push-сповіщень із постачальником послуг, NPS використовує новий API для отримання короткочасного маркера push-сповіщення від серверної частини UCaaS і використовує цей маркер для автентифікації за допомогою Apple APN і служб Google FCM.

Ця функція також розширює можливості сервера надсилання сповіщень надсилати сповіщення на пристрої Android через новий API HTTPv1 Google Firebase Cloud Messaging (FCM).

XSP (або ADP платформи доставки застосунків), на якому розміщено NPS, має відповідати таким вимогам:

Мінімальні версії та обмеження щодо спільного проживання

  • NPS має бути активований на виділеному XSP/ADP, а NPS має бути єдиною розміщеною програмою на сервері. Це робиться для усунення перешкод у доставці 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, а потім змініть цей параметр із використанням застарілого API FCM на використання API FCM HTTP версії 1.

  • Після того як ви переконаєтеся, що сповіщення працюють належним чином для старіших програм із проксі-сервером NPS, видаліть ключ API FCM для програми Android і ключ автентифікації APN для застосунку iOS.

APN HTTP/2

  • Якщо ви розгорнули будь-які програми iOS, що не належать до Cisco/BroadSoft, налаштуйте ці програми на використання протоколу HTTP/2 APNS, перш ніж налаштовувати NPS для використання проксі-сервера NPS.

  • XSP/ADP, які вже підтримують програму Collaborate або 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 для програм iOS UC-One SaaS (або Connect).

Якщо NPS підтримує ці програми, і вони ще не налаштовані на HTTP/2.

2.

Виконайте міграцію NPS до FCMv1 для програм Android UC-One SaaS (або Connect).

Якщо NPS підтримує ці програми, і вони ще не налаштовані для FCMv1.

3.

Увімкніть режим FCMv1 та протестуйте push-сповіщення.

Якщо NPS підтримує UC-One Connect та/або інші програми Android (не Cisco).

4.

Знову ввімкніть застарілий режим FCM.

Якщо NPS підтримує UC-One SaaS. Якщо залишити FCMv1 ввімкненим, перш ніж налаштувати проксі-сервер NPS, надсилання сповіщень до 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 the-authkey

5.

Увімкнути HTTP/2:

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

6.

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

7.

Прокрутіть униз до розділу Notification Push Server і виберіть свій випуск (наприклад, Випуск 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) у захищене розташування.

3.

Імпортуйте файл .json на сервер ADP /bw/install.

4.

Увійдіть до CLI ADP і додайте проект і ключ 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-сповіщення про виклики до інших програм працюють із FCMv1 API.

Ви тимчасово вимикаєте FCMv1, оскільки ключі FCMv1 для цих програм має лише бути ввімкненим під час процесу налаштування проксі автентифікації NPS.

1.

Увійдіть у XSP, на якому розміщено ваш спільний NPS.

2.

Перейдіть до контексту FCM і вимкніть FCM версії 1: XSP_CLI/Applications/NotificationPushServer/FCM> set V1enabled false щоб повернутися до використання застарілого ключа API FCM.

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 com.cisco.wx2.android

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

Параметр

Значення

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

Перевірте, чи сервер застосунків перевіряє ідентифікатори програм, оскільки вам може знадобитися додати програми 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