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 Cloud Messaging (FCM) HTTPv1 API 將通知推送至 Android 裝置的功能。

該功能的 BroadWorks 修補程式可在 Xchange 上獲得: https://xchange.broadsoft.com/node/1046235

如需相關資訊,請參閱 Xchange 上的 Push Server for VoIP in UCaaS 功能說明https://xchange.broadsoft.com/node/1045458

託管 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 設定為使用 NPS Proxy 時,您可以進行轉換。

  • 當您已驗證具有 NPS Proxy 的較舊應用程式的通知是否正常運作時,您可以移除 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 應用程式,則您設定 NPS Proxy 之前,無法啟用 FCMv1 金鑰。 建議您將所有其他應用程式都移轉為使用 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 金鑰。

安裝下列修補程式以支援 NPS 驗證 Proxy 功能:

R22 修補程式

R23 修補程式

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
新密碼: 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 applicationId com.cisco.wx2.android

對於 Android 版 UC-One 應用程式: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add applicationId com.broadsoft.connect

5

(對於 Apple iOS 通知)在 APNS 應用程式環境中新增應用程式 ID,確保省略驗證金鑰(將其設為空白)。

對於 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 應用程式推送通知失敗,則可能是設定出錯。 如果是這種狀況,您可以使用 HTTP2Enabled false 回復為舊版二進位介面