NPS 驗證 Proxy 的概觀


本文說明如何將共用 NPS 設定為使用 NPS 驗證 Proxy,以便它也可以用來將呼叫通知推送至 Webex 應用程式。 如果您的 NPS 不支援其他應用程式,您可以遵循 Webex for BroadWorks 解決方案指南 https://help.webex.com/z9gt5j 中的簡化程序進行操作。

NPS Proxy 概觀

為了與 Webex for BroadWorks 相容,您的 NPS 必須經過修補以支援 NPS Proxy 功能:Push Server for VoIP in UCaaS

此功能會在通知推送伺服器中進行新設計以解決與行動用戶端的服務提供者共用推送通知憑證私密金鑰的安全弱點。 NPS 不與服務提供者共用推送通知憑證和金鑰,而是使用新 API 從 UCaaS 後端取得暫時的推送通知權杖,並使用此權杖向 Apple APNS 和 Google FCM 服務進行驗證。

此功能還加強了通知推送伺服器透過新的 Google Firebase 雲訊息傳遞 (FCM) HTTPv1 API 將通知推送至 Android 裝置的功能。

託管 NPS 的 XSP(或應用程式遞送平台 ADP)必須符合下列要求:

最低版本和共駐限制

  • NPS 必須在專用 XSP/ADP 上啟動,NPS 必須是伺服器上唯一託管的應用程式。 這是為了消除遞送推送通知的干擾。

  • 部署中只應有一個 NPS 應用程式。 如果正在使用行動裝置版 UC-One Collaborate/Connect 及/或 UC-One SaaS,並且正在實施 Webex for BroadWorks,您必須針對所有應用程式共用這個單一的 NPS。

  • NPS 必須位於 R22 版或更高版本的 XSP 或 ADP 上。

    如果 XSP 執行 NPS 且 AS 為 R21.SP1,則 R22/R23 XSP 與 R21 堆疊相容。 如需相關資訊,請參閱 BroadWorks 相容性矩陣

  • ADP 伺服器的相關資訊可在 https://xchange.broadsoft.com/node/1051580 上找到。

共用 NPS

在將共用 NPS 設定為使用 NPS Proxy 之前,請閱讀下列注意事項:

  • 如果您的 NPS 與其他應用程式(不僅是 Webex 應用程式)一同使用: 首先設定 NPS Proxy,然後將 NPS 從使用 FCM 舊版API變更為使用 FCM HTTP v1 API。

  • 當您驗證通知適用於使用 NPS 代理的較舊應用程式後,請移除Android應用程式的 FCM API密鑰,以及 iOS 應用程式的 APNs 驗證密鑰。

APNS HTTP/2

  • 如果已部署不是來自 Cisco/BroadSoft 的任何 iOS 應用程式,請將這些應用程式設定為使用 HTTP/2 APNS 通訊協定,然後再將 NPS 設定為使用 NPS Proxy。

  • 已支援 Collaborate 或 SaaS BroadWorks 應用程式的 XSP/ADP 必須移轉為使用 HTTP/2。 如需設定 HTTP/2 的詳細資訊,請參閱 HTTP/2 對 APNS 通知推送伺服器的支援(本文彙總了如何移轉 NPS 以支援這些 iOS 應用程式)。

Android FCMv1

  • 如果已部署不是來自 Cisco/BroadSoft 的任何 Android 應用程式,請將這些應用程式設定為使用 FCMv1 金鑰,然後再將 NPS 設定為使用 NPS Proxy。

  • 如果 XSP/ADP 目前支援 Connect 或 UC-One SaaS 應用程式,則啟用 FCMv1 鍵之後您設定 NPS Proxy。 建議您將所有其他應用程式都移轉為使用 FCMv1 金鑰,啟用並測試,然後停用,直到您準備好完成設定指示為止(本文記錄了移轉流程)。

圖 1. 移轉至 NPS 驗證 Proxy 的視覺化摘要
表 1. 要移轉至 NPS Proxy 的任務摘要

序列

任務標題

何時/為何需要任務?

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 Proxy 之前將 FCMv1 保留為啟用狀態,則將通知推送至 UC-One SaaS 會失敗。

5

安裝 NPS 驗證 Proxy 修補程式。

如果 NPS 在 XSP R22 或 XSP R23 上。

6

將 NPS 設定為使用 NPS 驗證 Proxy:

  • 從 NPS 附加技術支援

  • 申請 CI OAuth 帳戶

  • 在 NPS 上建立 CI 帳戶並設定重新整理權杖逾時值

  • 新增 Android 應用程式 ID

  • 新增 iOS 應用程式 ID

  • 檢查/設定 URL 和連線逾時值

  • 將應用程式新增至 AS 允許清單

  • (重新)啟用 FCMv1

  • 重新啟動 XSP / ADP

  • 測試 iOS 和 Android 版應用程式的 PNS

始終需要。

7

移除 FCM 舊模式金鑰。

適用於 FCMv1 上的 NPS 成功支援的應用程式。

在 iOS 平台上,若要向 UC-One SaaS 和 Webex 應用程式推送通知,必須執行此任務。

準備工作

如果您的 XSP 執行的是 R22,您需要先套用 ap354313,然後才能設定 NPS 應用程式以針對 APNS 使用 HTTP/2。

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,確保省略驗證金鑰(將其設為空白)。

對於 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

向下捲至「通知推送伺服器」部分,選取您的發行版(例如第 22 版),然後遵循入口網站中提供的指示操作。

  • 此任務適用於 XSP 上的 NPS。 如果您的 NPS 位於 ADP 上,請忽略此任務。

  • 對於 UC-One Connect 或 UC-One SaaS Android 應用程式,您可以使用此程序來移轉至 FCMv1 通知。

  • 如果您想要使用 NPS Proxy 來驗證 UC-One 或 Webex Android 應用程式的推送通知,則必須使用 FCMv1。

  • 此任務為 FCMv1 準備 NPS,以便您能夠在設定 NPS 驗證 Proxy 的過程中啟用 FCMv1。 在可以設定 NPS 驗證 Proxy 之前,請勿啟用 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 必要時變更值的指令版本:

執行 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

  • 此任務適用於 ADP 上的 NPS。 如果您的 NPS 位於 XSP 上,請忽略此任務。

  • 對於 UC-One Connect 或 UC-One SaaS Android 應用程式,您可以使用此程序來移轉至 FCMv1 通知。

  • 如果您想要使用 NPS Proxy 來驗證 UC-One 或 Webex Android 應用程式的推送通知,則必須使用 FCMv1。

  • 此任務為 FCMv1 準備 NPS,以便您能夠在設定 NPS 驗證 Proxy 的過程中啟用 FCMv1。 在可以設定 NPS 驗證 Proxy 之前,請勿啟用 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 驗證 Proxy 設定過程中才能啟用這些應用程式的 FCMv1 金鑰。

1

登入託管共用 NPS 的 XSP。

2

導覽至 FCM 環境並停用 FCM v1: XSP_CLI/Applications/NotificationPushServer/FCM> set V1enabled false 以恢復為使用 FCM 舊版API密鑰。

1

向加入合作夥伴的廠商聯絡人或向 TAC 申請服務來佈建您的 (Webex Common Identity) OAuth 用戶端帳戶。 將您的服務申請標題定為驗證 Proxy 設定的 NPS 設定

Cisco 為您提供了有效期限為 60 天的 OAuth 用戶端 ID、用戶端密碼及重新整理權杖。 如果權杖在 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 Proxy 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 通知)在 NPS 上的 FCM 應用程式環境中新增 Android 應用程式 ID。

對於 Android 版 Webex 應用程式: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add com.cisco.wx2.android

對於 Android 版 UC-One 應用程式: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add 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

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

確認應用程式伺服器是否會篩選應用程式 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

從 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