NPS 인증 프록시의 개요


이 문서는 공유 NPS가 NPS 인증 프록시를 사용하도록 구성하는 방법을 설명하며, 이는 Webex 앱에 통화 알림을 푸시하기 위해 사용될 수도 있습니다. NPS가 다른 앱을 지원하지 않는 경우, BroadWorks용 Webex 솔루션 안내서 https://help.webex.com/z9gt5j에 설명된 간소화된 절차를 따를 수 있습니다.

NPS 프록시 개요

BroadWorks용 Webex와 호환성을 위해 NPS가 NPS 프록시 기능인 UCaaS에서 VoIP의 푸시 서버를 지원하도록 패치되어야 합니다.

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

이 기능은 새로운 Google Firebase Cloud Messaging(FCM) HTTPv1 API를 통해 Android 장치에 알림을 푸시하기 위한 알림 푸시 서버의 기능도 강화합니다.

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

자세한 정보는 Xchange에서 UCaaS에서 VoIP의 푸시 서버 기능 설명을 참조하십시오. https://xchange.broadsoft.com/node/1045458

NPS를 호스트하는 XSP(또는 응용프로그램 전달 플랫폼 ADP)는 다음 요구 사항을 충족해야 합니다.

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

  • NPS는 전용 XSP/ADP에서 활성화되어야 하며, NPS는 서버에서 유일한 호스트된 응용프로그램이어야 합니다. 이는 푸시 알림의 전달에서 간섭을 제거하기 위해 실행됩니다.

  • 배포에는 한 개의 NPS 앱만 있어야 합니다. 모바일 UC-One Collaborate/Connect 및/또는 UC-One SaaS를 사용하고 있으며 BroadWorks용 Webex를 실행하는 경우, 모든 앱에 대해 이 싱글 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 앱에 대한 APNS 인증 키를 제거할 수 있습니다.

APNs HTTP/2

  • Cisco/BroadSoft에서 사용하지 않는 iOS 앱을 배포한 경우, NPS가 NPS 프록시를 사용하도록 구성하기 전에 해당 앱이 HTTP/2 APNS 프로토콜을 사용하도록 구성합니다.

  • 협업 또는 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를 지원하는 경우. NPS 프록시를 구성하기 전에 FCMv1을 활성화해 두는 경우, 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를 실행하고 있는 경우, NPS 응용프로그램이 APNS에 대해 HTTP/2를 사용하도록 구성하기 전에 ap354313을 적용해야 합니다.

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 응용프로그램 컨텍스트에 응용프로그램 ID를 추가하고 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

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

알림 푸시 서버 섹션으로 스크롤 다운하고 릴리즈를 선택한 후(예: Release 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

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

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 버전을 사용하여 값을 변경합니다.

실행: 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

(Webex Common Identity) OAuth 클라이언트 계정을 프로비저닝하려면 등록 연락처 또는 TAC에서 서비스 요청을 만듭니다. 서비스 요청의 제목은 인증 프록시 설정에 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
새 비밀번호: client-Secret-From-Step1

  XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client> set RefreshToken
새 비밀번호: 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> set 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 알림용) APNS 응용프로그램 컨텍스트에 응용프로그램 ID를 추가하고 Auth 키를 생략하십시오. 이는 공백으로 설정합니다.

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

응용프로그램 서버가 응용프로그램 ID를 확인하는지 점검합니다. 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 장치에 통화 알림이 나타나는지 확인합니다.

참고: 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 장치에 통화 알림이 나타나는지 확인합니다.

참고: UC-One iOS 응용프로그램에 대해 푸시 알림이 실패하는 경우, 잘못 구성된 것일 수도 있습니다. 이러한 경우, set HTTP2Enabled false를 사용하여 레거시 바이너리 인터페이스로 복원할 수 있습니다.