Przegląd serwera proxy uwierzytelniania NPS


W tym artykule opisano, jak skonfigurować współdzielony serwer NPS do korzystania z serwera proxy uwierzytelniania NPS, aby można go było również używać do wysyłania powiadomień o połączeniach do aplikacji Webex. Jeśli NPS nie obsługuje innych aplikacji, można postępować zgodnie z procedurą uproszczoną w przewodniku po rozwiązaniach Webex for BroadWorks https://help.webex.com/z9gt5j.

Przegląd serwera proxy NPS

Aby uzyskać zgodność z Webex for BroadWorks, NPS musi być dopasowany, aby obsługiwać funkcję serwera proxy NPS, Push Server for VoIP w UCaaS.

Funkcja wdraża nowy projekt w serwerze powiadomień push w celu rozwiązania luki w zabezpieczeniach polegającej na udostępnianiu prywatnych kluczy certyfikatów powiadomień push dostawcom usług dla klientów mobilnych. Zamiast udostępniać certyfikaty powiadomień push i klucze dostawcy usług, NPS korzysta z nowego interfejsu API w celu uzyskania krótkotrwałego tokena powiadomień push z backendu UCaaS i używa tego tokena do uwierzytelniania za pomocą aplikacji Apple APN i usług Google FCM.

Funkcja ta zwiększa również zdolność serwera powiadamiania push Server do wysyłania powiadomień do urządzeń z systemem Android za pośrednictwem nowego interfejsu API HTTPv1 (Google Firebase Cloud Messaging, FCM).

XSP (lub ADP platformy dostarczania aplikacji), w której działa NPS, musi spełniać następujące wymagania:

Minimalne wersje i ograniczenia dotyczące współrezydencji

  • NPS musi być aktywowany na dedykowanym XSP/ADP, a NPS musi być jedyną hostowaną aplikacją na serwerze. Ma to na celu wyeliminowanie zakłóceń w dostarczaniu powiadomień Push.

  • Wdrożenie powinno obejmować tylko jedną aplikację NPS. Jeśli korzystasz z telefonu komórkowego UC-One Collaborate/Connect lub UC-One SaaS i wdrażasz Webex dla BroadWorks, musisz udostępnić ten pojedynczy NPS dla wszystkich aplikacji.

  • NPS musi być w wersji R22 lub nowszej XSP lub ADP.

    R22/R23 XSP jest zgodny ze stosem R21, jeżeli XSP działa tylko z NPS, a AS to R21.SP1. Aby uzyskać więcej informacji, zobacz matrycę zgodności BroadWorks.

  • Więcej informacji na temat serwera ADP można znaleźć pod adresem https://xchange.broadsoft.com/node/1051580.

Udostępnione NPS

Przed skonfigurowaniem współdzielonego serwera NPS do korzystania z serwera proxy NPS przeczytaj te notatki:

  • Jeśli NPS jest używany z innymi aplikacjami (nie tylko z aplikacją Webex): Najpierw skonfiguruj serwer proxy NPS, a następnie zmień protokół NPS z używania starszego interfejsu API FCM na korzystanie z interfejsu API FCM HTTP v1.

  • Po zweryfikowaniu, że powiadomienia działają prawidłowo dla starszych aplikacji z serwerem proxy NPS, a następnie usunąć klucz API FCM dla aplikacji Android i klucz auth APNs dla aplikacji iOS.

APN HTTP/2

  • Jeśli wdrożyłeś aplikacje iOS, które nie pochodzą z systemu Cisco/BroadSoft, skonfiguruj te aplikacje do korzystania z protokołu HTTP/2 APNS przed skonfigurowaniem NPS do korzystania z serwera proxy NPS.

  • XSP/ADP, które obsługują już aplikację Collaborate lub SaaS BroadWorks, muszą być migrowane do HTTP/2. Aby uzyskać szczegółowe informacje na temat konfigurowania HTTP/2, zobacz HTTP/2 Support to Notification Push Server for APNS (migracja NPS do obsługi tych aplikacji iOS jest podsumowana w tym artykule).

Android FCMv1

  • Jeśli wdrożyłeś aplikacje z systemem Android, które nie pochodzą z Cisco/BroadSoft, skonfiguruj te aplikacje, aby używały klawiszy FCMv1 przed skonfigurowaniem NPS do korzystania z serwera proxy NPS.

  • Jeśli aplikacja XSP/ADP obsługuje obecnie aplikację Connect lub UC-One SaaS, włącz klawisze FCMv1 po skonfigurowaniu serwera proxy NPS. Zalecamy migrację wszystkich dodatkowych aplikacji do klawiszy FCMv1, włączenie i przetestowanie, a następnie wyłączenie, aż będziesz gotowy do wypełnienia instrukcji konfiguracji (przepływ migracji jest udokumentowany w tym artykule).

Ryc. 1. Podsumowanie wizualne migracji do serwera proxy uwierzytelniania NPS
Tabela 1. Podsumowanie zadań związanych z migracją do serwera proxy NPS

Sekwencja

Tytuł zadania

Kiedy/dlaczego Zadanie Jest Wymagane?

1

Migruj NPS do HTTP/2 dla aplikacji UC-One SaaS (lub Connect) iOS.

Jeśli NPS obsługuje te aplikacje i nie są one jeszcze skonfigurowane dla protokołu HTTP/2.

2

Migruj NPS do FCMv1 dla aplikacji z systemem Android UC-One SaaS (lub Connect).

Jeśli NPS obsługuje te aplikacje i nie są one jeszcze skonfigurowane do FCMv1.

3

Włącz tryb FCMv1 i testuj powiadomienia push.

Jeśli NPS obsługuje UC-One Connect i/lub inne aplikacje (inne niż Cisco) z systemem Android.

4

Ponownie włączyć tryb starszego modułu FCM.

Jeśli NPS obsługuje UC-One SaaS. Jeśli pozostawisz włączoną FCMv1, przed skonfigurowaniem serwera proxy NPS, naciśnij powiadomienia do UC-One SaaS, aby nie powiodły się.

5

Zainstaluj poprawki serwera proxy uwierzytelniania NPS.

Jeśli NPS jest w XSP R22 lub XSP R23.

6

Skonfiguruj serwer NPS, aby używał serwera proxy uwierzytelniania NPS:

  • Załączyć wsparcie techniczne z NPS

  • Żądanie konta CI OAuth

  • Utwórz konto CI na NPS i skonfiguruj limit czasu tokena odświeżania

  • Dodaj zestawy aplikacji Android

  • Dodaj telefony aplikacji iOS

  • Sprawdzanie/ustawianie adresów URL i limitów czasu połączenia

  • Dodawanie aplikacji do listy dozwolonych JAKO

  • (Ponowne) Włącz FCMv1

  • Uruchom ponownie XSP / ADP

  • Przetestuj dane PNs dla aplikacji z systemem iOS i Android

Zawsze wymagane.

7

Usunąć klucze trybu starszego FCM.

Dla aplikacji, które są z powodzeniem obsługiwane przez NPS w FCMv1.

To zadanie jest obowiązkowe w przypadku powiadomień push do aplikacji UC-One SaaS i Webex na platformach iOS.

Przed rozpoczęciem

Jeśli XSP działa w trybie R22, przed skonfigurowaniem aplikacji NPS do korzystania z protokołu HTTP/2 dla aplikacji APNS należy zastosować wartość ap354313.

1

Ustaw adres URL produkcji i parametry połączenia na XSP_CLI/Applications/NotificationPushServer/APNS/Production>

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

set connectionPoolSize 2

set connectionTimeout 3000

set connectionIdleTimeoutInSeconds 600

Uwaga: Nie należy ustawiać limitu czasu połączenia poniżej 1000.

2

Dodaj identyfikatory aplikacji do kontekstu aplikacji APNS, pamiętając, aby pominąć klucz Auth – ustaw go jako pusty.

Dla UC-One SaaS: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.broadsoft.uc-one

W przypadku aplikacji Webex: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

3

Sprawdź klucze uwierzytelniania za pomocą XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> get

4

Jeśli klucz uwierzytelniania nie jest pusty dla com.broadsoft.uc-one można to wyczyścić za pomocą XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> clear the-authkey

5

Włącz HTTP/2:

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

6

Tylko dla aplikacji UC-One SaaS: Zaloguj się do portalu sprzedawcy i przejdź do Konfiguracja > BroadWorks > .

7

Przewiń w dół do sekcji Serwer push powiadomień i wybierz swoją wersję (np. wydanie 22), a następnie postępuj zgodnie z instrukcjami podanymi w portalu.

  • To zadanie dotyczy NPS w systemie XSP. Zignorować, jeśli NPS jest na ADP.

  • Tę procedurę można wykorzystać do migracji do powiadomień FCMv1 dla aplikacji UC-One Connect lub UC-One SaaS Android.

  • Jeśli chcesz użyć serwera proxy NPS do uwierzytelniania powiadomień push do UC-One lub aplikacji Webex Android, musisz użyć protokołu FCMv1.

  • To zadanie przygotowuje protokół NPS dla protokołu FCMv1, aby można go było włączyć w ramach konfiguracji serwera proxy uwierzytelniania NPS. Nie włączaj FCMv1, dopóki nie będziesz gotowy do skonfigurowania serwera proxy uwierzytelniania NPS, lub powiadomienia klientów SaaS nie powiedzą.

1

Pobierz identyfikator projektu z konsoli Firebase:

  1. Zaloguj się do konsoli.firebase.google.com.

  2. Wybierz projekt aplikacji UC-One (Connect lub SaaS), otwórz ustawienia projektu.

  3. Otwórz kartę Ogólne i zapisz identyfikator projektu.

2

Pobierz klucz prywatny konta usługi z Firebase:

  1. Przejdź do karty Konta serwisowe w ustawieniach projektu.

  2. Albo utworzyć nowe konto usługi i uzyskać jego klucz prywatny.

  3. Albo otwórz istniejące konto usługi i wygeneruj dla niego nowy klucz prywatny.

    Uwaga: Konto usługi musi mieć uprawnienie firebaseadmin-sdk .

  4. Pobierz klucz do bezpiecznej lokalizacji.

3

Skopiuj klucz do XSP hostującego swój NPS.

4

Dodaj identyfikator projektu i powiązany klucz prywatny do kontekstu projektów FCM:

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

5

Dodaj aplikację UC-One (Connect lub SaaS) i powiązany identyfikator projektu do kontekstu aplikacji FCM:

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

6

Sprawdź konfigurację modułu FCM pod kątem atrybutów i zalecanych wartości widocznych tutaj. Użyj set wersja polecenia do zmiany wartości w razie potrzeby:

Uruchom XSP_CLI/Applications/NotificationPushServer/FCM> get

Parametr

Wartość zalecana

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

  • To zadanie dotyczy NPS w ADP. Zignorować, jeśli NPS jest na XSP.

  • Tę procedurę można wykorzystać do migracji do powiadomień FCMv1 dla aplikacji UC-One Connect lub UC-One SaaS Android.

  • Jeśli chcesz użyć serwera proxy NPS do uwierzytelniania powiadomień push do UC-One lub aplikacji Webex Android, musisz użyć protokołu FCMv1.

  • To zadanie przygotowuje protokół NPS dla protokołu FCMv1, aby można go było włączyć w ramach konfiguracji serwera proxy uwierzytelniania NPS. Nie włączaj FCMv1, dopóki nie będziesz gotowy do skonfigurowania serwera proxy uwierzytelniania NPS, lub powiadomienia klientów SaaS nie powiedzą.

1

Pobierz identyfikator projektu z konsoli Firebase:

  1. Zaloguj się do konsoli.firebase.google.com.

  2. Wybierz projekt aplikacji UC-One (Connect lub SaaS), otwórz ustawienia projektu.

  3. Otwórz kartę Ogólne i zapisz identyfikator projektu.

2

Pobierz klucz prywatny konta usługi z Firebase:

  1. Przejdź do karty Konta serwisowe w ustawieniach projektu.

  2. Albo utworzyć nowe konto usługi i uzyskać jego klucz prywatny.

  3. Albo otwórz istniejące konto usługi i wygeneruj dla niego nowy klucz prywatny.

    Uwaga: Konto usługi musi mieć uprawnienie firebaseadmin-sdk .

  4. Pobierz klucz (.json file) do bezpiecznej lokalizacji.

3

Importuj plik .json do serwera ADP /bw/install.

4

Zaloguj się do ADP CLI i dodaj klucz projektu i interfejsu API do kontekstu projektów FCM:

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

5

Dodaj identyfikator aplikacji i projektu do kontekstu aplikacji FCM:

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

6

Sprawdź konfigurację:

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

Wystarczy to zrobić (w ramach migracji), jeśli:

  • Twój NPS jest używany do aplikacji UC-One SaaS lub BroadWorks Connect Android.

  • Przetestowano już, że powiadomienia push połączeń do innych aplikacji współpracują z API FCMv1.

Tymczasowo wyłączasz FCMv1, ponieważ klucze FCMv1 dla tych aplikacji muszą być włączone tylko podczas procesu konfiguracji serwera proxy uwierzytelniania NPS.

1

Zaloguj się do usługi XSP, która obsługuje współdzielone usługi NPS.

2

Przejdź do kontekstu FCM i wyłącz FCM v1: XSP_CLI/Applications/NotificationPushServer/FCM> set V1enabled false aby powrócić do korzystania ze starszego klucza interfejsu API FCM.

1

Utwórz zgłoszenie serwisowe z kontaktem przy wdrażaniu lub z TAC w celu dostarczenia konta klienta OAuth (Webex Common Identity). Nazwij swoje żądanie usługi Konfiguracja NPS dla konfiguracji serwera proxy uwierzytelniania.

Firma Cisco udostępnia identyfikator klienta OAuth, klucz tajny klienta i token odświeżania, który jest ważny przez 60 dni. Jeśli token wygaśnie przed użyciem z NPS, możesz złożyć inną prośbę.
2

Utwórz konto klienta w 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

Aby zweryfikować wprowadzone wartości zgodne z podanymi wartościami, uruchom XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client> get

3

Wprowadź adres URL serwera proxy NPS i ustaw interwał odświeżania tokenu (zalecane 30 minut):

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

XSP_CLI/Applications/NotificationPushServer/CloudNPSService> set VOIPTokenRefreshInterval 1800

4

(W przypadku powiadomień z systemem Android) Dodaj identyfikatory aplikacji z systemem Android do kontekstu aplikacji FCM w NPS.

W przypadku aplikacji Webex na Androida: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add com.cisco.wx2.android

Dla aplikacji UC-One na Androida: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add com.broadsoft.connect

5

(W przypadku powiadomień Apple iOS) Dodaj identyfikator aplikacji do kontekstu aplikacji APNS, upewniając się, że pominął klucz Auth – ustaw go na pusty.

W przypadku aplikacji Webex na iOS: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

W przypadku aplikacji UC-One na iOS: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

6

Skonfiguruj następujące adresy URL NPS:

Tabela 2.

Kontekst CLI XSP

Parametr

Wartość

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

Skonfiguruj następujące parametry połączenia NPS do wyświetlonych zalecanych wartości:

Tabela 3.

Kontekst CLI XSP

Parametr

Wartość

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

Sprawdź, czy serwer aplikacji wyświetla identyfikatory aplikacji, ponieważ może być konieczne dodanie aplikacji Webex do listy dozwolonych:

  1. Uruchom AS_CLI/System/PushNotification> get i sprawdź wartość enforceAllowedApplicationList. Jeśli tak, true, musisz wykonać to zadanie podrzędne. W przeciwnym razie pomiń resztę zadania podrzędnego.

  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

Uruchom ponownie XSP:

bwrestart
2

Przetestuj powiadomienia o połączeniach z systemem Android, wykonując połączenia od subskrybenta BroadWorks do klienta połączeń z systemem Android. Sprawdź, czy na urządzeniu z systemem Android jest wyświetlane powiadomienie o połączeniu.

Uwaga: Jeśli powiadomienia push zaczynają się nie działać dla aplikacji Android UC-One, możliwe jest, że istnieje błędna konfiguracja. Jeśli taka jest Twoja sytuacja, możesz powrócić do starszego modułu FCM w następujący sposób:

  1. Wyłącz FCMv1: XSP_CLI/Applications/NotificationPushServer/FCM> set V1Enabled false

  2. Uruchom ponownie XSP: bwrestart

  3. Sprawdź konfigurację.

  4. Ponownie włącz FCMv1 i uruchom ponownie XSP.

  5. Powtórz test.

3

Przetestuj powiadomienia o połączeniach z systemem iOS, wykonując połączenia od subskrybenta BroadWorks z klientem połączeń w systemie iOS. Sprawdź, czy na urządzeniu z systemem iOS pojawia się powiadomienie o połączeniu.

Uwaga: Jeśli powiadomienia push zaczynają się nie działać w aplikacji iOS UC-One, może dojść do błędnej konfiguracji. Jeśli jest to Twoja sytuacja, możesz powrócić do starszego interfejsu binarnego z set HTTP2Enabled false