NPS 인증 프록시 개요


이 문서에서는 NPS 인증 프록시를 사용하도록 공유 NPS를 구성하여 Webex 앱에 통화 알림을 푸시하는 방법을 설명합니다. NPS에서 다른 앱을 지원하지 않는 경우 Webex for BroadWorks 솔루션 가이드 https://help.webex.com/z9gt5j의 간단한 절차를 따를 수 있습니다.

NPS 프록시 개요

Webex for BroadWorks와 호환되려면 NPS 프록시 기능인 UCaaS의 VoIP용 Push Server를 지원하도록 NPS 패치를 적용해야 합니다.

이 기능은 모바일 클라이언트용 서비스 공급자와 푸시 알림 인증서 개인 키를 공유하는 보안 취약성을 해결하기 위해 알림 푸시 서버에 새 설계를 구현합니다. NPS는 푸시 알림 인증서와 키를 서비스 공급자와 공유하는 대신 새로운 API를 사용하여 UCaaS 백엔드에서 수명이 짧은 푸시 알림 토큰을 얻고, 이 토큰을 사용하여 Apple APN 및 Google FCM 서비스를 인증합니다.

또한 이 기능은 새로운 Google FCM(Firebase Cloud Messaging) HTTPv1 API를 통해 알림을 Android 장치에 푸시하는 알림 푸시 서버의 기능을 향상시킵니다.

이 기능에 대한 BroadWorks 패치는 Xchange: https://xchange.broadsoft.com/node/1046235에서 사용할 수 있습니다.

자세한 내용은 Xchange: https://xchange.broadsoft.com/node/1045458UCaaS 기능 설명의 VoIP용 Push Server를 참조하십시오.

NPS를 호스팅하는 XSP(또는 Application Delivery Platform ADP)는 다음 요구 사항을 충족해야 합니다.

최소 버전 및 동시 상주 제한 사항

  • NPS는 전용 XSP/ADP에서 활성화되어야 하며 NPS는 서버에서 유일하게 호스트되는 애플리케이션이어야 합니다. 이는 푸시 알림을 전달하는 데 방해가 되지 않도록 하기 위한 것입니다.

  • 구축에는 NPS 앱이 하나만 있어야 합니다. 모바일 UC-One Collaborate/Connect 및/또는 UC-One SaaS를 사용하고 Webex for BroadWorks를 구현 중인 경우 이 단일 NPS를 모든 애플리케이션에 공유해야 합니다.

  • NPS는 버전 R22 이상의 XSP 또는 ADP에 있어야 합니다.

    R22/R23 XSP는 XSP가 NPS 실행하고 AS가 R21.SP1인 경우 R21 스택과 호환됩니다. 자세한 내용은 BroadWorks 호환성 매트릭스를 참조하십시오.

  • ADP 서버에 대한 자세한 내용은 https://xchange.broadsoft.com/node/1051580에서 볼 수 있습니다.

공유 NPS

NPS 프록시를 사용하도록 공유 NPS를 구성하기 전에 다음 참고 사항을 읽어 보십시오.

  • NPS를 Webex 앱뿐만 아니라 다른 앱과 함께 사용하는 경우: NPS 프록시를 구성하기 전에 NPS를 FCM 레거시 API 사용에서 FCM HTTP v1 API 사용으로 변경하지 마십시오.

    NPS를 구성하는 동안 NPS 프록시를 사용하도록 변경할 수 있습니다.

  • NPS 프록시를 사용하는 이전 앱에서 알림이 제대로 작동하는지 확인한 후 Android 앱의 FCM API 키와 iOS 앱의 APN 인증 키를 제거할 수 있습니다.

APN HTTP/2

  • Cisco/BroadSoft가 아닌 iOS 앱을 구축한 경우 NPS 프록시를 사용하도록 NPS를 구성하기 전에 해당 앱을 HTTP/2 APNS 프로토콜을 사용하도록 구성하십시오.

  • Collaborate 또는 SaaS BroadWorks 앱을 이미 지원하는 XSP/ADP를 HTTP/2로 마이그레이션해야 합니다. HTTP/2 구성에 대한 자세한 내용은 APNS용 알림 푸시 서버로 HTTP/2 지원을 참조하십시오(이러한 iOS 앱을 지원하기 위한 NPS 마이그레이션은 이 문서에 요약되어 있음).

Android FCMv1

  • Cisco/BroadSoft가 아닌 Android 앱을 구축한 경우 NPS 프록시를 사용하도록 NPS를 구성하기 전에 FCMv1 키를 사용하도록 해당 앱을 구성합니다.

  • XSP/ADP가 현재 Connect 또는 UC-One SaaS 앱을 지원하는 경우 NPS 프록시를 구성하기 전에 FCMv1 키를 활성화할 수 없습니다. 추가 앱을 모두 FCMv1 키로 마이그레이션하고 활성화 및 테스트한 다음 설정 지침을 완료할 준비가 될 때까지 비활성화하는 것이 좋습니다(이 문서에 마이그레이션 흐름이 설명되어 있음).

그림 1. NPS 인증 프록시로 마이그레이션의 시각적 요약
표 1. NPS 프록시로 마이그레이션할 작업 요약

시퀀스

작업 제목

작업이 필요한 시기/이유

1

UC-One SaaS(또는 Connect) iOS 앱의 경우 NPS를 HTTP/2로 마이그레이션합니다.

NPS가 이러한 앱을 지원하고 아직 HTTP/2용으로 구성되지 않은 경우.

2

UC-One SaaS(또는 Connect) Android 앱을 위해 NPS를 FCMv1로 마이그레이션합니다.

NPS가 이러한 앱을 지원하고 아직 FCMv1에 대해 구성되지 않은 것입니다.경우

3

FCMv1 모드를 활성화하고 푸시 알림을 테스트합니다.

NPS가 UC-One Connect 및/또는 기타(비 Cisco) Android 앱을 지원하는 경우.

4

FCM 레거시 모드를 다시 활성화합니다.

NPS가 UC-One SaaS를 지원하는 경우. FCMv1을 활성화된 상태로 두면 NPS 프록시를 구성하기 전에 UC-One SaaS에 알림을 푸시하는 작업이 실패합니다.

5

NPS 인증 프록시 패치를 설치합니다.

NPS가 XSP R22 또는 XSP R23에 있는 경우.

6

NPS 인증 프록시를 사용하도록 NPS를 구성합니다.

  • NPS에서 기술 지원에 연결

  • 요청 CI OAuth 계정

  • NPS에서 CI 계정 만들기 및 새로 고침 토큰 시간 초과 구성

  • Android 앱 id 추가

  • iOS 앱 id 추가

  • URL 및 연결 시간 초과 확인/설정

  • 앱을 AS 허용 목록에 추가

  • FCMv1 (다시) 활성화

  • XSP/ADP 다시 시작

  • iOS 및 Android 앱에 대한 PN 테스트

항상 필요합니다.

7

FCM 레거시 모드 키를 제거합니다.

FCMv1의 NPS에서 성공적으로 지원하는 앱의 경우.

이 작업은 iOS 플랫폼에서 UC-One SaaS 및 Webex 앱에 대한 푸시 알림에 필수입니다.

시작하기 전에

XSP가 R22를 실행 중인 경우에는 ap354313을 적용해야 NPS 애플리케이션에서 APNS에 대해 HTTP/2를 사용하도록 구성할 수 있습니다.

1

XSP_CLI/Applications/NotificationPushServer/APNS/Production> 에서 프로덕션 URL 및 연결 매개 변수를 설정합니다.

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

set connectionPoolSize 2

set connectionTimeout 3000

set connectionIdleTimeoutInSeconds 600

참고: 1000 이하의 연결 시간 초과를 설정하지 마십시오.

2

APNS 애플리케이션 컨텍스트에 애플리케이션 ID를 추가하고 인증 키를 생략한 후 비워 둡니다.

UC-One SaaS의 경우:XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> com.broadsoft.uc-one 추가

Webex 앱의 경우: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> 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

알림 푸시 서버 섹션까지 아래로 스크롤하고 릴리스(예: 릴리스 22)를 선택한 다음 포털에 제공 된 지침을 따릅니다.

  • 이 작업은 XSP의 NPS에 적용됩니다. NPS가 ADP에 있는 경우에는 이를 무시하십시오.

  • 이 절차를 사용하여 UC-One Connect 또는 UC-One SaaS Android 앱에 대한 FCMv1 알림으로 마이그레이션할 수 있습니다.

  • NPS 프록시를 사용하여 UC-One 또는 Webex Android 앱에 대한 푸시 알림을 인증하려면 FCMv1를 사용해야 합니다.

  • 이 작업은 NPS 인증 프록시 구성의 일부로 활성화할 수 있도록 FCMv1에 대한 NPS를 준비합니다. NPS 인증 프록시를 구성할 준비가될 때까지 FCMv1를 활성화하지 마십시오. 그렇지 않으면 SaaS 클라이언트에 대한 알림이 실패합니다.

1

Firebase 콘솔에서 프로젝트 ID를 가져옵니다.

  1. console.firebase.google.com에 로그인합니다.

  2. UC-One(Connect 또는 SaaS) 앱 프로젝트를 선택하고 해당 프로젝트 설정을 엽니다.

  3. 일반 탭을 열고 프로젝트 ID를 기록합니다.

2

Firebase에서 서비스 계정의 개인 키를 가져옵니다.

  1. 프로젝트 설정에서 서비스 계정 탭으로 이동합니다.

  2. 서비스 계정을 새로 만들고 개인 키를 가져옵니다.

  3. 또는 기존 서비스 계정을 열고 이 계정에 대한 새 개인 키를 생성합니다.

    참고: 서비스 계정에 firebaseadmin-sdk 권한이 있어야 합니다.

  4. 보안 위치에 키를 다운로드합니다.

3

NPS를 호스팅하는 XSP 키를 복사합니다.

4

프로젝트 ID 및 연결된 개인 키를 FCM 프로젝트 컨텍스트에 추가합니다.

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

5

UC-One(Connect 또는 SaaS) 애플리케이션 및 관련 프로젝트 ID를 FCM 애플리케이션 컨텍스트에 추가합니다.

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

6

여기에 표시된 특성 및 권장 값에 대해 FCM 구성을 확인합니다. 필요한 경우 명령의 set 버전을 사용하여 값을 변경합니다.

Run 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

범위

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

tokenTimeToLiveInSeconds

3600

connectionPoolSize

10

connectionTimeoutInMilliseconds

3000

connectionIdleTimeoutInSeconds

600

  • 이 작업은 ADP의 NPS에 적용됩니다. NPS가 XSP에 있는 경우에는 이를 무시하십시오.

  • 이 절차를 사용하여 UC-One Connect 또는 UC-One SaaS Android 앱에 대한 FCMv1 알림으로 마이그레이션할 수 있습니다.

  • NPS 프록시를 사용하여 UC-One 또는 Webex Android 앱에 대한 푸시 알림을 인증하려면 FCMv1를 사용해야 합니다.

  • 이 작업은 NPS 인증 프록시 구성의 일부로 활성화할 수 있도록 FCMv1에 대한 NPS를 준비합니다. NPS 인증 프록시를 구성할 준비가될 때까지 FCMv1를 활성화하지 마십시오. 그렇지 않으면 SaaS 클라이언트에 대한 알림이 실패합니다.

1

Firebase 콘솔에서 프로젝트 ID를 가져옵니다.

  1. console.firebase.google.com에 로그인합니다.

  2. UC-One(Connect 또는 SaaS) 앱 프로젝트를 선택하고 해당 프로젝트 설정을 엽니다.

  3. 일반 탭을 열고 프로젝트 ID를 기록합니다.

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

애플리케이션 및 프로젝트 ID를 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 앱에 사용됩니다.

  • 다른 앱에 대한 호출 푸시 알림이 FCMv1 API와 함께 작동하는지 이미 테스트했습니다.

이러한 앱에 대한 FCMv1 키는 NPS 인증 프록시 구성 프로세스 중에만 사용하도록 설정해야 하므로 일시적으로 FCMv1을 사용하지 않도록 설정합니다.

1

공유 NPS를 호스팅하는 XSP에 로그인합니다.

2

FCM 컨텍스트로 이동하여 FCM v1: XSP_CLI/Applications/NotificationPushServer/FCM> set V1enabled false를 비활성화하여 FCM 레더시 API 키를 사용하도록 되돌립니다.

다음 패치를 설치하여 NPS 인증 프록시 기능을 지원합니다.

R22 패치

R23 패치

1

온보딩 연락처 또는 TAC를 사용하여 서비스 요청을 생성하여 (Webex Common Identity) OAuth 클라이언트 계정을 프로비저닝합니다. 서비스 요청의 제목을 인증 프록시 설치를 위한 NPS 구성으로 지정합니다.

Cisco는 OAuth 클라이언트 ID, 클라이언트 암호 및 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

NPS 프록시 URL을 입력하고 토큰 새로 고침 간격(30분 권장)을 설정합니다.

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

XSP_CLI/Applications/NotificationPushServer/CloudNPSService > 설정 VOIPTokenRefreshInterval 1800

4

(Android 알림에 해당) Android 애플리케이션 ID를 NPS의 FCM 애플리케이션 컨텍스트에 추가합니다.

Android의 Webex 앱의 경우: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add applicationId com.cisco.wx2.android

Android의 UC-One 앱의 경우: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add applicationId com.broadsoft.connect

5

(Apple iOS 알림의 경우) 애플리케이션 ID를 APNS 애플리케이션 컨텍스트에 추가하고 인증 키를 생략합니다. 비어 있음으로 설정합니다.

iOS의 Webex 앱의 경우: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

iOS의 UC-One 앱의 경우: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

6

다음 NPS URL을 구성합니다.

표 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

범위

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 앱을 허용 목록에 추가해야 할 수 있으므로 애플리케이션 서버가 애플리케이션 ID를 검사하는지 확인합니다.

  1. un 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

BroadWorks 가입자가 Android의 통화 클라이언트로 전화를 걸어 Android에 대한 통화 알림을 테스트합니다. Android 장치에 통화 알림이 표시되는지 확인합니다.

참고: UC-One Android 애플리케이션에 대한 푸시 알림이 실패하기 시작하면 잘못된 구성이 있을 수 있습니다. 이런 경우에는 다음과 같이 레거시 FCM으로 되돌릴 수 있습니다.

  1. FCMv1 비활성화: XSP_CLI/Applications/NotificationPushServer/FCM> set V1Enabled false

  2. XSP 다시 시작: bwrestart

  3. 구성을 확인합니다.

  4. FCMv1을 다시 활성화하고 XSP를 다시 시작합니다.

  5. 테스트를 반복합니다.

3

BroadWorks 가입자가 iOS의 통화 클라이언트로 전화를 걸어 iOS에 대한 통화 알림을 테스트합니다. iOS 장치에 통화 알림이 표시되는지 확인합니다.

참고: UC-One iOS 애플리케이션에 대한 푸시 알림이 실패하기 시작하면 구성이 잘못된 것일 수 있습니다. 이 경우 set HTTP2Enabled false로 레거시 이진 인터페이스로 되돌릴 수 있습니다.