Przegląd Proxy uwierzytelniania NPS (NPS Authentication Proxy)


Ten artykuł opisuje, jak skonfigurować współdzielony NPS, aby korzystał z proxy uwierzytelniania NPS, dzięki czemu może być również wykorzystywany do wysyłania powiadomień o połączeniach do aplikacji Webex. Jeśli twój NPS nie obsługuje innych aplikacji, możesz zastosować uproszczoną procedurę opisaną w Przewodniku po rozwiązaniu Webex for BroadWorks https://help.webex.com/z9gt5j.

Omówienie serwera proxy NPS

Aby zapewnić kompatybilność z Webex for BroadWorks, urządzenie NPS musi otrzymać poprawki w celu obsługi funkcji NPS Proxy, Push Server for VoIP in UCaaS.

Funkcja ta implementuje nowy projekt w serwerze powiadomień push, aby rozwiązać lukę w zabezpieczeniach związaną z udostępnianiem kluczy prywatnych certyfikatów powiadomień push dostawcom usług dla klientów mobilnych. Zamiast udostępniać certyfikaty i klucze powiadomień push dostawcy usług, NPS używa nowego API do uzyskania krótkotrwałego tokena powiadomień push z backendu UCaaS i używa tego tokena do uwierzytelniania z usługami Apple APNs i Google FCM.

Funkcja ta zwiększa również możliwości serwera powiadomień push w zakresie wysyłania powiadomień na urządzenia z systemem Android za pośrednictwem nowego interfejsu API Google Firebase Cloud Messaging (FCM) HTTPv1.

Poprawki BroadWorks dla tej funkcji są dostępne na stronie XChange: https://xchange.broadsoft.com/node/1046235

Więcej informacji można znaleźć w opisie funkcji serwera push dla VoIP w UCaaS na stronie Xchange: https://xchange.broadsoft.com/node/1045458

XSP (lub platforma dostarczania aplikacji ADP), która hostuje NPS, musi spełniać następujące wymagania:

Wersje minimalne i ograniczenia dotyczące współrezydencji

  • NPS musi być aktywowany na dedykowanym XSP/ADP, a NPS musi być jedyną hostowaną aplikacją na tym serwerze. Ma to na celu wyeliminowanie ingerencji z dostarczania powiadomień push.

  • Wdrożenie powinno dotyczyć tylko jednej aplikacji NPS. Jeśli używasz mobilnego UC-One Collaborate/Connect lub UC-One SaaS i wdrażasz Webex for BroadWorks, musisz udostępnić ten pojedynczy NPS dla wszystkich aplikacji.

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

    R22/R23 XSP jest kompatybilny ze stosem R21, jeśli XSP uruchamia tylko NPS, a AS jest R21.SP1. Więcej informacji na ten temat można znaleźć w matrycy zgodności BroadWorks.

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

Współużytkowany serwer NPS

Przed skonfigurowaniem współdzielonego serwera NPS do korzystania z serwera NPS Proxy należy zapoznać się z poniższymi uwagami:

  • Jeśli NPS jest używany z innymi aplikacjami (nie tylko z aplikacją Webex): Nie zmieniaj NPS z używania FCM legacy API na używanie FCM HTTP v1 API przed skonfigurowaniem proxy NPS.

    Można to zmienić podczas konfigurowania NPS, aby korzystać z proxy NPS.

  • Po sprawdzeniu, że powiadomienia działają poprawnie dla starszych aplikacji z proxy NPS, możesz usunąć klucz FCM API dla aplikacji Android oraz klucz APNs auth dla aplikacji iOS.

APNs HTTP/2

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

  • Urządzenia XSP/ADP, które już obsługują aplikację Collaborate lub SaaS BroadWorks, muszą zostać zmigrowane do HTTP/2. Szczegółowe informacje na temat konfiguracji protokołu HTTP/2 można znaleźć w artykule Obsługa HTTP/2 w Notification Push Server for APNS (migracja NPS w celu obsługi tych aplikacji na iOS została podsumowana w tym artykule).

Android FCMv1

  • Jeśli wdrożyłeś jakiekolwiek aplikacje na Androida, które nie pochodzą od Cisco/BroadSoft, skonfiguruj te aplikacje do korzystania z kluczy FCMv1 przed skonfigurowaniem NPS do korzystania z proxy NPS.

  • Jeśli XSP/ADP obsługuje obecnie aplikację Connect lub UC-jedna aplikacja SaaS, nie można włączyć kluczy FCMv1 przed skonfigurowaniem serwera proxy zasad sieciowych Zalecamy zmigrowanie wszystkich dodatkowych aplikacji do kluczy FCMv1, włączenie i przetestowanie, a następnie wyłączenie do czasu, aż będziesz gotowy do wykonania instrukcji konfiguracji (przebieg migracji jest udokumentowany w tym artykule).

Rys. 1. Wizualne podsumowanie migracji do serwera proxy uwierzytelniania NPS
Tabela 1. Podsumowanie zadań związanych z migracją do proxy NPS

Numer sekwencyjny

Tytuł zadania

Kiedy/dlaczego to zadanie jest wymagane?

1

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

Jeśli serwer NPS obsługuje te aplikacje, ale nie jest jeszcze skonfigurowany dla protokołu HTTP/2.

2

Migracja NPS do FCMv1 dla aplikacji UC-One SaaS (lub Connect) na Androida.

Jeśli urządzenie NPS obsługuje te aplikacje, a nie są one jeszcze skonfigurowane do obsługi FCMv1.

3

Włącz tryb FCMv1 i przetestuj powiadomienia push.

Jeśli NPS obsługuje UC-One Connect i/lub inne (nie-Cisco) aplikacje dla systemu Android.

4

Ponownie Włącz tryb starszego FCM.

Jeśli serwer NPS obsługuje funkcję UC-One SaaS. Jeśli pozostawisz FCMv1 włączone, zanim skonfigurujesz NPS proxy, powiadomienia push do UC-One SaaS zaczną się nie udawać.

5

Zainstaluj poprawki do serwera proxy uwierzytelniającego NPS.

Jeśli serwer NPS pracuje w systemie XSP R22 lub XSP R23.

6

Skonfiguruj serwer NPS do korzystania z serwera proxy uwierzytelniania NPS:

  • Dołączanie wsparcia technicznego z serwera NPS

  • Żądanie konta CI OAuth

  • Tworzenie konta CI na NPS i konfiguracja limitu czasu odświeżania tokena

  • Dodaj identyfikatory aplikacji na Androida

  • Dodawanie identyfikatorów aplikacji systemu iOS

  • Sprawdzanie/Ustawianie adresów URL i limitów czasu połączeń

  • Dodawanie aplikacji do listy dozwolonych

  • (Ponowne) Włączenie FCMv1

  • Uruchomienie ponowne XSP/ADP

  • Testy PN dla aplikacji na iOS i Android

Zawsze wymagane.

7

Usuwanie przycisków trybu starszego FCM.

W przypadku aplikacji, które są z powodzeniem obsługiwane przez NPS na FCMv1.

Zadanie to jest obowiązkowe dla powiadomień push do aplikacji UC-One SaaS i Webex na platformach iOS.

Przed rozpoczęciem

Jeśli twój XSP działa w wersji R22, musisz zastosować ap354313 zanim będziesz mógł skonfigurować aplikację NPS do używania HTTP/2 dla APNS.

1

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

ustaw adres URL https://api.push.apple.com/3/device

ustaw connectionPoolSize 2

ustaw connectionTimeout 3000

Ustaw connectionIdleTimeoutInSeconds 600

Uwaga: nie ustawiaj limitu czasu dla połączenia poniżej 1000.

2

Dodaj identyfikatory aplikacji do kontekstu aplikacji APNS, upewniając się, że pominięto klucz uwierzytelniania — tak aby został ustawiony na wartość pustą.

W przypadku UC-1 SaaS: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.broadsoft.uc-one

Aplikacja Webex: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

3

Sprawdź klucze uwierzytelniania przy użyciu XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> get

4

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

5

Włącz protokół HTTP/2:

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

6

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

7

Przewiń w dół do sekcji Notification Push Server i wybierz swoją wersję (np. Wydanie 22), a następnie postępuj zgodnie z instrukcjami podanymi w portalu.

  • To zadanie dotyczy serwera NPS w systemie XSP. Ten przycisk należy zignorować, jeśli serwer NPS pracuje w systemie ADP.

  • Tej procedury można użyć w przypadku migrowania do powiadomień FCMv1 dla systemu UC-jednego Connect lub UC-1 aplikacji SaaS Android.

  • Musisz użyć FCMv1, jeśli chcesz użyć NPS proxy do uwierzytelniania powiadomień push do UC-One lub aplikacji Webex Android.

  • To zadanie przygotowuje NPS do obsługi FCMv1, aby można było włączyć ją w ramach konfiguracji proxy uwierzytelniania NPS. Nie włączaj FCMv1 dopóki nie będziesz gotowy do skonfigurowania proxy uwierzytelniającego NPS, w przeciwnym razie powiadomienia do klientów SaaS nie będą działać.

1

Pobierz identyfikator projektu z konsoli Firebase Console:

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

  2. Wybierz projekt aplikacji UC-1 (Connect lub SaaS), a następnie otwórz ustawienia projektu.

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

2

Pobierz klucz prywatny konta usługi z Firebase:

  1. Przejdź do zakładki Konta serwisowe w ustawieniach projektu.

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

  3. Lub 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 w zabezpieczonej lokalizacji.

3

Skopiuj klucz do XSP, na którym znajduje się twó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

W kontekście aplikacji FCM dodaj aplikację UC-One (Connect lub SaaS) i powiązany identyfikator projektu:

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

6

Sprawdź konfigurację dla FCM pod kątem atrybutów i zalecanych wartości przedstawionych tutaj. Użyj wersji set polecenia, aby zmienić wartości, jeśli to konieczne:

Uruchom XSP_CLI/Applications/NotificationPushServer/FCM> get

Parametr

Zalecana wartość

authURL

https://www.googleapis.com/oauth2/v4/token

pushURL

https://fcm.googleapis.com/v1/projects/PROJECT-ID/messages:send

przedział

https://www.googleapis.com/auth/firebase.messaging

tokenTimeToLiveInSeconds

3600

connectionPoolSize

10

connectionTimeoutInMilliseconds

3000

connectionIdleTimeoutInSeconds

600

  • To zadanie dotyczy serwera NPS w systemie ADP. Ten przycisk należy zignorować, jeśli serwer NPS pracuje w systemie XSP.

  • Tej procedury można użyć w przypadku migrowania do powiadomień FCMv1 dla systemu UC-jednego Connect lub UC-1 aplikacji SaaS Android.

  • Musisz użyć FCMv1, jeśli chcesz użyć NPS proxy do uwierzytelniania powiadomień push do UC-One lub aplikacji Webex Android.

  • To zadanie przygotowuje NPS do obsługi FCMv1, aby można było włączyć ją w ramach konfiguracji proxy uwierzytelniania NPS. Nie włączaj FCMv1 dopóki nie będziesz gotowy do skonfigurowania proxy uwierzytelniającego NPS, w przeciwnym razie powiadomienia do klientów SaaS nie będą działać.

1

Pobierz identyfikator projektu z konsoli Firebase Console:

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

  2. Wybierz projekt aplikacji UC-1 (Connect lub SaaS), a następnie otwórz ustawienia projektu.

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

2

Pobierz klucz prywatny konta usługi z Firebase:

  1. Przejdź do zakładki Konta serwisowe w ustawieniach projektu.

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

  3. Lub 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 (plik .json) do bezpiecznej lokalizacji.

3

Zaimportować plik .json na serwer ADP /bw/install.

4

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

ADP_CLI/Applications/NotificationPushServer/FCM/Projects> add connect-ucaas /bw/install/nazwapliku.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

Czynność tę należy wykonać tylko w ramach migracji, jeśli:

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

  • Użytkownik już przetestował powiadomienia push na połączeniach do innych aplikacji, używając interfejsu API FCMv1.

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

1

Zaloguj się do XSP hostującego twój współdzielony NPS.

2

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

Zainstaluj następujące poprawki, aby obsłużyć funkcję proxy uwierzytelniania NPS:

Poprawki R22

Poprawki R23

1

Utwórz zgłoszenie serwisowe z osobą odpowiedzialną za wdrażanie lub z TAC, aby udostępnić swoje konto klienta (Webex Common Identity) OAuth. Zatytułuj swój wniosek o usługę Konfiguracja NPS dla Auth Proxy Setup.

Cisco daje ci OAuth client ID, klucz tajny klienta i token odświeżający, który jest ważny przez 60 dni. Jeśli token przekroczy ważność przed użyciem go w serwerze NPS, możesz utworzyć inną prośbę.
2

Utwórz konto klienta na serwerze 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 sprawdzić, czy wprowadzone wartości odpowiadają podanemu wartościom, należy uruchomić XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client> get

3

Wprowadź adres URL serwera proxy NPS i ustaw interwał odświeżania tokenu (zalecany 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

(Dla powiadomień systemu Android) Dodaj identyfikatory aplikacji systemu Android do kontekstu aplikacji FCM na serwerze NPS.

Aplikacja Webex na urządzeniach z systemem Android: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add applicationId com.cisco.wx2.android

Aplikacja UC-One na urządzenia z systemem Android: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add applicationId com.broadsoft.connect

5

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

Aplikacja Webex na urządzenia z systemem iOS: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

Aplikacja Webex na urządzenia z systemem 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

przedział

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łączeń serwera NPS zgodnie z podanymi zalecanymi wartościami:

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 sprawdza identyfikatory aplikacji, ponieważ być może będziesz musiał dodać aplikacje Webex do listy dozwolonych:

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

  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 na Androida poprzez wykonywanie połączeń z abonenta BroadWorks do klienta dzwoniącego na Androidzie. Sprawdź, czy na urządzeniu z systemem Android są wyświetlane powiadomienia o połączeniu.

Uwaga: Jeśli powiadomienia wypychane kończą się niepowodzeniem w przypadku aplikacji systemu Android z systemem Android, możliwe, że wystąpił niepoprawna konfiguracja. Jeśli jest to sytuacja użytkownika, można powrócić do starszej wersji FCM, korzystając z następującego wzoru:

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

  2. Uruchom ponownie XSP: bwrestart

  3. Sprawdzenie Twojej konfiguracji.

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

  5. Powtórz test.

3

Przetestuj powiadomienia o połączeniach na iOS wykonując połączenia z abonenta BroadWorks do klienta dzwoniącego na iOS. Sprawdź, czy na urządzeniu z systemem iOS pojawiło się powiadomienie o połączeniu .

Uwaga: Jeśli powiadomienia push zaczynają zawodzić dla aplikacji UC-One iOS, możliwe jest, że wystąpiła błędna konfiguracja. Jeśli to jest twoja sytuacja, możesz powrócić do starszego interfejsu binarnego set HTTP2Enabled false