内容

概要

前提条件

要件

使用するコンポーネント

制約事項

背景説明

主な利点

アーキテクチャ全体

設定 – Jabber On Premises

1. [Refresh Logins]を設定します。

2. OAuthポートを設定します。

3. SIP OAuthモードを有効にします。

4. Cisco CallManagerサービスを再起動します。

5.セキュリティプロファイルでOAuthサポートを構成します。

設定：Jabber over MRA

前提条件

ステップ1:MRAでRefresh Loginを有効にします。

ステップ2:Expressway-CのUnified CMノードを更新します。

ステップ3：セキュリティプロファイルでOAuthサポートを設定します。

確認

1. SIP OAuthモードがグローバルに有効になっているかどうかを確認します。

2. Expressway-C SANエントリがCUCMに正常にプッシュされたことを確認します。

3. Expressway-CでCEOAuthゾーンを確認します。

4. SIP OAuthポートでCallManagerプロセスがリッスンしていることを確認します。

トラブルシュート

Jabberログの例（オンプレミス）

シナリオ1:SIP OAuth登録ポートの不一致

シナリオ2:Expresswayからの不明なCA

シナリオ3:UCMからの不明なCA

概要

このドキュメントでは、Cisco JabberでSIP OAuthモードを実装するための設定と基本的なトラブルシューティング手順について説明します。

前提条件

要件

次の項目に関する知識があることが推奨されます。

- Jabberソフトフォンの登録

- Unified Communications Manager（UCM）

- モバイルおよびリモートアクセス(MRA)ソリューション

使用するコンポーネント

SIP OAuthモードをサポートするための最小ソフトウェアバージョン：

- Cisco UCM 12.5

- Cisco Jabber 12.5

- Cisco Expressway X12.5

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。

制約事項

SIP OAuthモードを有効にすると、[ダイジェスト認証の有効化(Enable Digest Authentication)]オプションと[TFTP暗号化設定(TFTP Encrypted Config)]オプションはサポートされません。

背景説明

主な利点

Cisco JabberソフトフォンのSIPシグナリングとメディアのセキュリティ保護には、現在、複数の設定手順が含まれています。最も困難なのは、クライアント証明書(LSC)のインストールと更新です。特に、Cisco Jabberデバイスがオンプレミスとオフプレミスを切り替える場合は、証明書をCTLファイル内で最新の状態に保ちます。

SIP OAuthモードを使用すると、Cisco Jabber Softphoneは、セキュアなSIPインターフェイスでの認証に、クライアントLSC証明書の代わりにOAuth自己記述型トークンを使用できます。UCM SIPインターフェイスでOAuthをサポートすることにより、混合モードやCAPF操作を必要とせずに、JabberのオンプレミスおよびMRAの展開に対してセキュアなシグナリングとメディアを提供できます。

Cisco JabberのSIP OAuthモードのサポートの主な利点：

- 管理者の負担を増やすことなく、常時暗号化を有効にします。

- 混合モードを必要とせずに、Cisco Jabberのセキュアなシグナリングとメディア（CTLの更新、証明書のメンテナンスなど）

- JabberクライアントにLSCをインストールして維持する必要はありません。

- 複数のデバイス（ラップトップ/モバイルデバイス）でのLSCの課題

- CAPF操作は、新しいデバイスにJabberがインストールされるたびに必要です。

- MRAではCAPF操作はサポートされません。

アーキテクチャ全体

Cisco Jabberデバイスは、CSF設定ファイル(http://<cucmIP>:6970/<CSF-device-name>.cnf.xml)の解析により、SIPインターフェイスでOAuth認証が有効になっていることを認識します（一部の行は省略）。

Cisco JabberがsipOAuthModeパラメータを読み取り、SIP OAuthモードが有効かどうかを確認します。このパラメータには、次のいずれかの値を指定できます。

- 0 - SIP OAuthが無効です

- 1 - SIP OAuthが有効になっている

SIP OAuthモードが有効になっている場合、Jabberは次のパラメータのいずれかを使用して、SIP TLS接続のポート(オンプレミスの場合はsipOAuthPort、MRAベースの展開用sipMRAOAUTHPortPort)を。この例では、デフォルト値sipOAuthPort 5090とsipMRAOAuthPort 5091が示されています。これらの値は設定可能で、各CUCMノードで異なることがあります。

SIP OAuthモードが無効になっている場合、JabberはSIP登録に従来の非セキュア(5060)またはセキュア(5061)ポートを使用します。

注：Cisco UCMは、SIP電話OAuthポート(5090)を使用して、Jabber OnPremiseデバイスからのSIP回線登録をTLS経由でリッスンします。ただし、UCMはSIP Mobile Remote Access Port（デフォルトは5091）を使用して、mLTS経由でJabber over ExpresswayからSIP回線登録をリッスンします。これらのポートは両方とも設定可能です。設定セクションを参照してください。

CallManagerサービスは、sipOAuthPortとsipMROAuthPortの両方でリッスンします。ただし、両方のポートは、着信TLS/mTLS接続にTomcat証明書とTomcat-trustを使用します。Tomcat-trustストアが、MRAが正しく機能するように、SIP OAuthモードのExpressway-C証明書を確認できることを確認します。

場合によっては、Tomcat証明書が再生成されたときに、影響を受けるノードでも後でCallManagerプロセスを再起動する必要があります。これは、CCMプロセスがsipOAuthポートで新しい証明書をロードして使用するために必要です。

次の図は、オンプレミスでのCisco Jabberの登録を示しています。

次の図は、MRA上でのCisco Jabberの登録を示しています。

*Expressway-CノードはAXL APIを使用して、証明書に含まれるCN/SANをUCMに通知します。UCMは、相互TLS接続が確立されるときに、この情報を使用してExp-C証明書を検証します。

設定 – Jabber On Premises

注：

SIP OAuthモードの設定を行う前に、次の点を確認してください。

- MRAが設定され、Unified Communication Manager(UCM)とExpresswayの間で接続が確立されます（MRAが使用されている場合にのみ適用されます）。

- UCMは、エクスポート制御の機能を使用できるスマートアカウントまたは仮想アカウントに登録されます。

1. [Refresh Logins]を設定します。

OAuthアクセストークンを使用してログインの更新を構成し、Cisco Jabberクライアントのトークンを更新します。Cisco Unified CM Administrationから、[System] > [Enterprise Parameters]を選択します。

2. OAuthポートを設定します。

[System] > [Cisco Unified CM]を選択します。このステップは任意で実行します。図はデフォルト値を示しています。設定可能な範囲は1024 ～ 49151です。サーバごとに同じ手順を繰り返します。

3. SIP OAuthモードを有効にします。

パブリッシャのコマンドラインインターフェイスを使用してSIP OAuthモードをグローバルに有効にします。次のコマンドを実行します。utils sipOAuth-mode enable

4. Cisco CallManagerサービスを再起動します。

Cisco Unified Serviceabilityから、[Tools] > [Control Center - Feature Services]を選択します。サービスがアクティブになっているすべてのノードで、Cisco CallManagerサービスを選択して再起動します。

5.セキュリティプロファイルでOAuthサポートを構成します。

Cisco Unified CM Administrationから、[System] > [Phone Security Profile]を選択します。[OAuth認証を有効にする]を選択し、エンドポイントのSIP OAuthサポートを有効にします。

設定：Jabber over MRA

前提条件

Jabber over MRAのSIP OAuthモードを設定する前に、この記事の「Configuration - Jabber On Premises」の章の手順1 ～ 4を実行します。

ステップ1:MRAでRefresh Loginを有効にします。

Expresswayで更新ログインを有効にする（自己記述トークンとも呼ばれる）必要があります。Expressway-Cで、[Configuration] > [Unified Communications] > [Configuration]に移動して、[Authorize by OA Token with refresh]パラメータが設定されていることを確認します..

ステップ2:Expressway-CのUnified CMノードを更新します。

[Configuration] > [Unified Communications] > [Unified CM servers]に移動します。Expressway-CのUnified CMノードを検出または更新します。

注：新しいCEOAuth(TLS)ゾーンがExpressway-Cに自動的に作成されます。たとえば、CEOAuth <Unified CM name>などです。Jabber over MRAから発信されたSIP要求をUnified CMノードにプロキシする検索ルールが作成されます。このゾーンは、Unified CMが混合モードで構成されているかどうかに関係なくTLS接続を使用します。信頼を確立するために、Expressway-Cはホスト名とサブジェクト代替名(SAN)の詳細もUnified CMクラスタに送信します。適切な設定が行われていることを確認するには、この記事の確認部分を参照してください。

ステップ3：セキュリティプロファイルでOAuthサポートを設定します。

Cisco Unified CM Administrationから、[System] > [Phone Security Profile]を選択します。Cisco Jabberに割り当てられているプロファイルでOAuthサポートを有効にします。

確認

1. SIP OAuthモードがグローバルに有効になっているかどうかを確認します。

Cisco Unified CM AdministrationからOAuthモードを確認し、[System] > [Enterprise Parameters]を選択します。

または、管理CLIを使用します。次のコマンドを実行します。run sql select paramvalue FROM processconfig WHERE paramname = 'ClusterSIPOAuthMode'

可能な値：0：無効（デフォルト）、1：有効

2. Expressway-C SANエントリがCUCMに正常にプッシュされたことを確認します。

Expressway-Cは、証明書のCN/SANの詳細をAXL経由でUCMに送信します。これらの詳細は、expressswaycconfigurationテーブルに保存されます。このプロセスは、Expressway-CのUnified CMノードを検出または更新するたびに呼び出されます。これらのエントリは、UCMとExpressway-C間の信頼を確立するために使用されます。Expressway-C証明書のCN/SANフィールド（デフォルトは50900900900900000000000000000000）。 検証が失敗すると、MTLS接続は失敗します。

Cisco Unified CM Administrationのエントリを確認して、Device > Expressway-Cを選択します(UCM 12.5.1Su1以降で使用可能)

または、Admin CLIを使用します。次のコマンドを実行します。 run sql select * from expressswaycconfiguration

3. Expressway-CでCEOAuthゾーンを確認します。

[Expressway-C] > [Configuration] > [Zones] > [Zones]に移動します。新しく作成されたすべてのCEOAuthゾーンがアクティブ状態であることを確認します。

4. SIP OAuthポートでCallManagerプロセスがリッスンしていることを確認します。

Admin CLIから次のコマンドを実行します。show open ports regexp 5090（デフォルトのSIP OAuthポート）

Admin CLIから次のコマンドを実行します。show open ports regexp 5091（デフォルトのSIP MRA OAuthポート）

トラブルシュート

Jabberログの例（オンプレミス）

Jabberログの観点から、ポート5090でのオンプレミスSIP OAuth登録のログ例。

## CSF configuration retrieved 2020-03-30 13:03:18,278 DEBUG [0x000012d8] [src\callcontrol\ServicesManager.cpp(993)] [csf.ecc] [csf::ecc::ServicesManager::fetchDeviceConfig] - fetchDeviceConfig() retrieved config for CSFrado 2020-03-30 13:03:18,278 DEBUG [0x000012d8] [rc\callcontrol\ServicesManager.cpp(1003)] [csf.ecc] [csf::ecc::ServicesManager::fetchDeviceConfig] - Device Config:

10.10.10.1

ccm12pub

2000

5060

5061

5090

5091

…

1

## Setting SIP oauth mode to 1 2020-03-30 13:03:18,747 DEBUG [0x00002968] [ig\CertificateVerificationHelper.cpp(35)] [csf.ecc] [csf::ecc::CertificateVerificationHelper::setSipOauthMode] - sip OAuth Mode=1 ## Setting OAuth ports (5090 and 5091) for each UCM server 13:03:19,013 INFO  [0x00002484] [\core\ccapp\config\config_parser.c(1491)] [csf.sip-call-control] [config_process_ccm_properties] - ccm0=10.10.10.1 ccm1=10.10.10.2  ccm2= sip_oauth_port_0=5090 sip_oauth_port_1=5090 sip_oauth_port_2=5090 length=0 13:03:19,013 INFO  [0x00002484] [\core\ccapp\config\config_parser.c(1494)] [csf.sip-call-control] [config_process_ccm_properties] - sip_mar_oauth_port_0=5091 sip_mar_oauth_port_1=5091 sip_mar_oauth_port_2=5091 ## Open TLS connection to 5090 2020-03-30 13:03:18,528 DEBUG [0x00000e2c] [sipstack\sip_transport_connection.c(431)] [csf.sip-call-control] [sip_create_transport_connection] - [SIP][CONN][0] create TLS connection 10.10.10.10:5061-----10.10.10.1:5090. ## Sending register message 2020-03-30 13:03:19,200 DEBUG [0x00000e2c] [\sipcc\core\sipstack\ccsip_debug.c(1041)] [csf.sip-call-control] [platform_print_sip_msg] - sipio-sent---> REGISTER sip:10.10.10.1 SIP/2.0 Via: SIP/2.0/TLS 10.10.10.10:62162;branch=z9hG4bK00001188 From:

;tag=882323451234089000003bdd-00005eff To:

Call-ID: 88232345-12340017-00001c0b-00000cfa@10.10.10.10 Max-Forwards: 70 Date: Mon, 30 Mar 2020 11:03:19 GMT CSeq: 2270 REGISTER User-Agent: Cisco-CSF Contact:

;+sip.instance="

";+u.sip!devicename.ccm.cisco.com="CSFrado";+u.sip!model.ccm.cisco.com="503";video Supported: replaces,join,sdp-anat,norefersub,resource-priority,extended-refer,X-cisco-callinfo,X-cisco-serviceuri,X-cisco-escapecodes,X-cisco-service-control,X-cisco-srtp-fallback,X-cisco-monrec,X-cisco-config,X-cisco-sis-7.0.0,X-cisco-xsi-8.5.1,X-cisco-graceful-reg,X-cisco-duplicate-reg ## 407 Proxy Authentication Required 2020-03-30 13:03:19,310 DEBUG [0x00000e2c] [\sipcc\core\sipstack\ccsip_debug.c(1041)] [csf.sip-call-control] [platform_print_sip_msg] - sipio-recv<--- SIP/2.0 407 Proxy Authentication Required Via: SIP/2.0/TLS 10.10.10.10:62162;branch=z9hG4bK00001188 From:

;tag=882323451234089000003bdd-00005eff To:

;tag=441122775 Date: Mon, 30 Mar 2020 11:03:31 GMT Call-ID: 88232345-12340017-00001c0b-00000cfa@10.10.10.10 Server: Cisco-CUCM12.5 CSeq: 2270 REGISTER Proxy-Authenticate: Bearer realm="ccmsipline" Content-Length: 0 ## Register with OAuth token included in the Proxy-Authorization header 2020-03-30 13:03:19,310 DEBUG [0x00000e2c] [\sipcc\core\sipstack\ccsip_debug.c(1041)] [csf.sip-call-control] [platform_print_sip_msg] - sipio-sent---> REGISTER sip:10.10.10.1 SIP/2.0 Via: SIP/2.0/TLS 10.10.10.10:62162;branch=z9hG4bK00004a82 From:

;tag=882323451234089000003bdd-00005eff To:

Call-ID: 88232345-12340017-00001c0b-00000cfa@10.10.10.10 Max-Forwards: 70 Date: Mon, 30 Mar 2020 11:03:19 GMT CSeq: 2271 REGISTER User-Agent: Cisco-CSF Contact:

;+sip.instance="

";+u.sip!devicename.ccm.cisco.com="CSFrado";+u.sip!model.ccm.cisco.com="503";video Proxy-Authorization: Bearer token="

" Supported: replaces,join,sdp-anat,norefersub,resource-priority,extended-refer,X-cisco-callinfo,X-cisco-serviceuri,X-cisco-escapecodes,X-cisco-service-control,X-cisco-srtp-fallback,X-cisco-monrec,X-cisco-config,X-cisco-sis-7.0.0,X-cisco-xsi-8.5.1,X-cisco-graceful-reg,X-cisco-duplicate-reg Reason: SIP;cause=200;text="cisco-alarm:111 Name=CSFrado ActiveLoad=Jabber_for_Windows-12.8.0.51973 InactiveLoad=Jabber_for_Windows-12.8.0.51973 Last=Application-Requested-Destroy" Expires: 3600 Content-Type: multipart/mixed; boundary=uniqueBoundary Mime-Version: 1.0 Content-Length: 1271 # 200 OK for Register 2020-03-30 13:03:19,325 DEBUG [0x00000e2c] [\sipcc\core\sipstack\ccsip_debug.c(1041)] [csf.sip-call-control] [platform_print_sip_msg] - sipio-recv<--- SIP/2.0 200 OK Via: SIP/2.0/TLS 10.10.10.10:62162;branch=z9hG4bK00004a82 From:

;tag=882323451234089000003bdd-00005eff To:

;tag=1915868308 Date: Mon, 30 Mar 2020 11:03:31 GMT Call-ID: 88232345-12340017-00001c0b-00000cfa@10.10.10.10 Server: Cisco-CUCM12.5 CSeq: 2271 REGISTER Expires: 120 Contact:

;+sip.instance="

";+u.sip!devicename.ccm.cisco.com="CSFrado";+u.sip!model.ccm.cisco.com="503";video;x-cisco-newreg Supported: X-cisco-srtp-fallback,X-cisco-sis-9.1.0 Content-Type: application/x-c

シナリオ1:SIP OAuth登録ポートの不一致

SIP OAuthモードのオンプレミスのJabberデバイスがUCMに登録できない。UCMがRegisterメッセージに対して403を送信します。

SIP/2.0 403 Forbidden Via: SIP/2.0/TLS 10.5.10.121:50347;branch=z9hG4bK00005163 From:

;tag=005056867e66010a00006698-00002a32 To:

;tag=1946377502 Date: Fri, 03 Aug 2018 05:00:18 GMT Call-ID: 00505686-7e660005-0000216b-0000366f@10.5.10.121 Server: Cisco-CUCM12.5 CSeq: 363 REGISTER Retry-After: 35 Warning: 399 UCM2-PUB "SIP OAuth Registration port Mismatch" Content-Length: 0

考えられる解決策：次の条件が満たされていることを確認します。

- OAuthモードがグローバルに有効になっている

- デバイスに関連付けられたデバイスセキュリティプロファイルで、OAuthサポートが有効になっている

- mTLSではなくTLSを介して5090ポートで受信されたメッセージ

シナリオ2:Expresswayからの不明なCA

Expressway-Cは、sipMRAOAutport（デフォルトは5091）でUCMとのmTLSハンドシェイクを確立できません。 Expressway-CはUCMが共有する証明書を信頼せず、mTLSセットアップ中にUnknown CAメッセージで応答します。

考えられる解決策：CallManagerサービスは、mTLSハンドシェイク中にTomcat証明書を送信します。Expressway-CがUCMのTomcat証明書の署名者を信頼していることを確認します。

シナリオ3:UCMからの不明なCA

Expressway-Cは、sipMRAOAutport（デフォルトは5091）でUCMとのmTLSハンドシェイクを確立できません。UCMは、Expresswayで共有されている証明書を信頼せず、mTLSセットアップ中にUnknown CAメッセージで応答します。

この通信からのパケットキャプチャ(UCM 10.x.x.198、Expressway-C 10.x.x.182):

考えられる解決策：UCMは、Tomcat-trustストアを使用して、SIP OAuthポートでのmTLSハンドシェイク中に着信証明書を確認します。Expressway-Cの署名者の証明書がUCMに正しくアップロードされていることを確認します。