NPS 認証プロキシの概要


この記事では、共有 NPS を設定して NPS 認証プロキシを使用する方法について説明します。共有 NPS は Webex アプリに着信通知をプッシュするためにも使用できます。 NPS が他のアプリをサポートしていない場合は、Webex for BroadWorks ソリューションガイドhttps://help.webex.com/z9gt5jの簡略化された手順に従うことができます。

NPS プロキシの概要

Webex for BroadWorks との互換性のため、UCaaS の VoIP 用プッシュサーバーという NPS プロキシ機能をサポートできるよう NPS にパッチを適用する必要があります。

この機能は、通知プッシュ サーバーの新しい設計を実装して、モバイル クライアントのサービス プロバイダとプッシュ通知証明書の秘密鍵を共有するセキュリティ上の脆弱性を解決します。 NPS は、プッシュ通知証明書とキーをサービスプロバイダと共有する代わりに、新しい API を使用して UCaaS バックエンドから短期間のプッシュ通知トークンを取得し、このトークンを使用して Apple APN と Google FCM サービスでの認証を行います。

この機能により、通知プッシュ サーバーが新しい Google Firebase Cloud Messaging (FCM) HTTPv1 API 経由で Android デバイスにプッシュ通知する機能も強化されています。

NPS をホストする XSP(または Application Delivery Platform ADP)は、次の要件を満たす必要があります。

最小バージョンと共存制限

  • NPS は専用の XSP/ADP で有効化する必要があり、サーバー上で唯一ホストされているアプリケーションである必要があります。 これは、プッシュ通知の配信への干渉を排除するためです。

  • デプロイメントに存在する NPS アプリは 1 つのみとする必要があります。 モバイル 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 を設定する前に、次の注意事項をお読みください。

  • NPS が他のアプリ(Webex アプリだけでなく)で使用されている場合: まず NPS プロキシを設定してから、NPS を FCM レガシー API の使用から FCM HTTP v1 API の使用に変更します。

  • 通知が NPS プロキシを持つ古いアプリで正常に機能していることを確認したら、Android アプリの FCM API キーと 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 サポート」[英語] を参照してください(この記事では、これらの iOS アプリをサポートするための NPS の移行についてまとめられています)。

Android FCMv1

  • シスコ/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 やその他の(シスコ以外の)Android アプリをサポートしている場合。

4

FCM レガシーモードを再度有効にします。

NPS が UC-One SaaS をサポートしている場合。 NPS プロキシを設定する前に FCMv1 が有効になっていると、UC-OneSaaS へのプッシュ通知が届かなくなります。

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 を実行している場合は、APNS に対して HTTP/2 を使用するように NPS アプリケーションを設定する前に、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

アプリケーション ID を APNS アプリケーションコンテキストに追加します。必ず認証キーを省略(空に設定)してください。

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 プロキシを使用して 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> 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 プロキシを使用して 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> 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 キーの使用に戻します。

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> set VOIPTokenRefreshInterval 1800

4

(Android 通知の場合) Android アプリケーション ID を NPS の FCM アプリケーションコンテキストに追加します。

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 アプリケーション コンテキストに追加し、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

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

Webex アプリを許可リストに追加するために必要な可能性があるため、アプリケーション サーバーがアプリケーション ID を審査中か確認してください。

  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