NPS 身份驗證代理概述


本文介紹如何設定共享的 NPS 以使用 NPS 驗證代理,讓其亦可用將通話通知推送至Webex 應用程式。 如果您的 NPS 不支持其他應用程序,您可以按照 Webex for BroadWorks 解決方案指南中的簡化步驟操作https://help.webex.com/z9gt5j

NPS 代理概述

為了與適用於 BroadWorks 的 Webex 相容,您的 NPS 必須安裝修補程式以支援 NPS 代理功能,UCaaS 中的 VoIP 推送伺服器

該功能在通知推送伺服器中實現了新的設計,以解決與行動用戶端的服務提供者共享推送通知時,憑證密鑰的安全漏洞。 NPS 沒有與服務提供者共享推送通知憑證和密鑰,而是使用新的 API 從 UCaaS 後端獲取短期推送通知權杖, 並使用此權杖與 Apple APNs 和 Google FCM 服務進行驗證。

該功能還增強了通知推送伺服器透過新的 Google Firebase Cloud Messaging (FCM) HTTPv1 API,將通知推送到 Android 裝置的能力

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

有關更多信息,請參閱UCaaS 中的 VoIP 推送服務器功能描述在 Xchange 上: 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 上。

    如果 XSP執行 NPS,而 AS 為 R21.SP1,則 R22/R23 XSP 可與 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 代理的情況下,通知仍能配合較舊的應用程式一同使用,即可刪除 FCM API Android 應用程式的密鑰,以及 iOS 應用程式的 APNs 驗證密鑰。

APNs HTTP/2

  • 如果您已部署任何並非來自 Cisco/BroadSoft 的 iOS 應用程式,請在設定 NPS 以使用 NPS 代理前,將這些應用程式設定為使用 HTTP/2 APNS 協議。

  • 已經支援 Collaborate 或 SaaS BroadWorks 應用程式的 XSP/ADP 需要遷移到 HTTP/2。 有關配置 HTTP/2 的詳細信息,請參閱對 APNS 通知推送服務器的 HTTP/2 支持(本文總結了 NPS 遷移以支持這些 iOS 應用程序)。

安卓 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,則需要先套用 ap354313,然後才能將 NPS 應用程式設定為對 APNS 使用 HTTP/2。

1

將生產 URL 和連接參數設置為XSP_CLI/Applications/NotificationPushServer/APNS/Production>

設定網址 https://api.push.apple.com/3/device

設定 connectionPoolSize 2

設定 connectionTimeout 3000

設定 connectionIdleTimeoutInSeconds 600

附註: 不要將連接超時設置為低於 1000。

2

將應用程式 ID 新增到 APNS 應用程式內文,確保省略驗證密鑰 - 將其設定為空白。

對於 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>清除authkey

5

啟用 HTTP/2:

XSP_CLI/Applications/NotificationPushServer/APNS/GeneralSettings>將 HTTP2Enabled 設定為 True

6

僅適用於 UC-One SaaS 應用程序: 登錄經銷商門戶並轉到配置>布羅德工廠> .

7

向下捲動到「通知推送伺服器」部分,然後選擇您的版本 (例如第 22 版),然後按照入口網站中提供的指引進行操作。

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

  • 您可以使用此過程將 UC-One Connect 或 UC-One SaaS Android 應用程式遷移到 FCMv1 通知。

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

  • 此任務會為 FCMv1 準備 NPS,以便您可以將其作為 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> 新增 project-id path/to/keyfile

5

將 UC-One (Connect 或 SaaS) 應用程式和關聯的項目 ID 新增到 FCM 應用程式內文:

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

6

根據此處顯示的屬性和推薦值檢查 FCM 的設定。 用必要時更改值的命令版本:

執行 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 代理驗證 UC-One 或 Webex Android 應用程式的推送通知,則必須使用 FCMv1。

  • 此任務會為 FCMv1 準備 NPS,以便您可以將其作為 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> 新增 connect-ucaas /bw/install/filename.json

5

將應用程式和項目 ID 新增到 FCM 應用程式內文:

ADP_CLI/Applications/NotificationPushServer/FCM/Applications> 新增 applicationId com.broadsoft.ucaas.connect projectId project-id

6

驗證您的設定:

ADP_CLI/Applications/NotificationPushServer/FCM/Projects>獲取項目 ID Accountkey ======================== connect-ucaas ********
ADP_CLI/Applications/NotificationPushServer/FCM/Applications>獲取應用程序 ID 項目 ID ==================================== com.broadsoft.ucaas.connect connect-ucaas

您只需要在以下情況下執行此操作 (作為遷移的一部分) :

  • 您的 NPS 用於 UC-One SaaS 或 BroadWorks Connect Android 應用程式。

  • 您已經測試了其他應用程式的通話推送通知是否與 FCMv1 API 一起使用。

您暫時停用 FCMv1,因為這些應用程式的 FCMv1 密鑰必須只能在 NPS 驗證代理設定過程中啟用。

1

登入到託管共享 NPS 的 XSP。

2

導航到 FCM 上下文並禁用 FCM v1: XSP_CLI/Applications/NotificationPushServer/FCM>設置 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> 設定 clientId client-Id-From-Step1

XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client>設置客戶端機密新密碼: 客戶秘密來自第 1 步
XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client>設置刷新令牌新密碼: Refresh-Token-From-Step1

如要驗證您輸入的值與您所得到的值相符,請執行XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client>get

3

輸入 NPS 代理 URL,並設定權杖重新整理間隔 (建議為 30 分鐘) :

XSP_CLI/Applications/NotificationPushServer/CloudNPSService> 設定 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>添加 applicationId com.cisco.wx2.android

對於 Android 上的 UC-One 應用程序: XSP_CLI/Applications/NotificationPushServer/FCM/Applications>添加 applicationId com.broadsoft.connect

5

(對於 Apple iOS 通知) 將應用程式 ID 新增到 APNS 應用程式內文,確保省略驗證密鑰 - 將其設定為空白。

對於 iOS 上的 Webex 應用程序: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens>添加 com.cisco.squared

對於 iOS 上的 UC-One 應用程序: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens>添加 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>新增 com.cisco.wx2.android“Webex Android”

  3. AS_CLI/系統/PushNotification/AllowedApplications>添加 com.cisco.squared“Webex iOS”

1

重新啟動 XSP:

bwrestart
2

透過從 BroadWorks 使用者向 Android 上的通話用戶端發出通話來測試對 Android 的通話通知。 確認 Android 裝置是否有顯示 通話通知。

附註: 如果 UC-One android 應用程序的推送通知開始失敗,則可能是配置錯誤。 如果這是您的情況,您可以按如下方式恢復到舊版 FCM:

  1. 禁用 FCMv1: XSP_CLI/Applications/NotificationPushServer/FCM>設置 V1Enabled false

  2. 重啟 XSP: bwrestart

  3. 檢查您的組態。

  4. 重新啟用 FCMv1 並重新啟動 XSP。

  5. 重複測試。

3

透過從 BroadWorks 使用者向 iOS 上的通話用戶端發出通話來測試對 iOS 的通話通知。 確認 iOS 裝置是否有顯示 通話通知。

附註: 如果 UC-One iOS 應用程序的推送通知開始失敗,則可能是配置錯誤。 如果這是您的情況,您可以使用以下命令恢復到舊版二進制接口設置 HTTP2Enabled 假