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


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

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

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

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

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

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

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

  • NPS повинен бути активований на виділеному XSP / ADP, а NPS повинен бути єдиною розміщеною програмою на сервері. Це потрібно для усунення перешкод в доставці Push-повідомлень.

  • У розгортанні має бути лише один додаток NPS. Якщо ви використовуєте мобільний UC-One Collaborat/Connect і або UC-One SaaS, і впроваджуєте Webex для BroadWorks, ви повинні поділитися цим єдиним NPS для всіх додатків.

  • NPS має бути на версії R22 або новішій XSP, або ADP.

    R22/R23 XSP сумісний зі стеком R21, якщо XSP працює лише nps, а AS — R21. Пакет оновлень 1 (SP1). Перегляньте матрицю сумісності BroadWorks для отримання додаткової інформації.

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

Спільні NPS

Прочитайте ці примітки, перш ніж налаштувати свій спільний NPS на використання проксі-сервера NPS:

  • Якщо ваш NPS використовується з іншими програмами (не тільки з програмою Webex): Спочатку налаштуйте проксі-сервер NPS, потім змініть NPS з використання застарілого API FCM на використання FCM HTTP v1 API.

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

APN HTTP/ 2

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

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

Андроїд 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 і налаштуйте тайм-аут токена оновлення

  • Додавання ідентифікаторів програм 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-додатків, обов'язково опустивши клавішу 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.

Якщо клавіша auth не порожня для 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

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

Отримайте ідентифікатор проекту з консолі 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 знаходиться на XSP.

  • Ви можете використовувати цю процедуру для переходу на сповіщення FCMv1 для додатків UC-One Connect або UC-One SaaS для Android.

  • Ви повинні використовувати FCMv1, якщо хочете використовувати проксі-сервер NPS для автентифікації push-сповіщень до програм UC-One або Webex Android.

  • Це завдання готує 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.

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

Ви тимчасово вимикаєте 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) Додайте ідентифікатори додатків 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.

Контекст 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.

Примітка. Якщо для android-програми UC-One починають виходити з ладу push-повідомлення, можливо, відбувається неправильне налаштування. Якщо це ваша ситуація, ви можете повернутися до застарілої FCM наступним чином:

  1. Відключити FCMv1: XSP_CLI/Applications/NotificationPushServer/FCM> set V1Enabled false

  2. Перезапустіть XSP: bwrestart

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

  4. Знову увімкніть FCMv1 і перезапустіть XSP.

  5. Повторіть тест.

3.

Тестуйте сповіщення про дзвінки на iOS, здійснюючи дзвінки від абонента BroadWorks до клієнта, який телефонує на iOS. Переконайтеся, що сповіщення про виклик відображається на пристрої iOS.

Примітка. Якщо для програми UC-One iOS почнуть виходити з ладу push-повідомлення, можливо, відбудеться неправильне налаштування. Якщо це ваша ситуація, ви можете повернутися до застарілого бінарного інтерфейсу з set HTTP2Enabled false