目录

简介

先决条件

要求

使用的组件

限制

背景信息

主要好处

整体架构

配置 — 本地Jabber

1.配置刷新登录。

2.配置OAuth端口。

3.启用SIP OAuth模式。

4.重新启动Cisco CallManager服务。

5.在安全配置文件中配置OAuth支持。

配置 — MRA上的Jabber

预安曲

步骤1.启用Refresh Login over MRA。

步骤2.刷新Expressway-C中的Unified CM节点。

步骤3.在安全配置文件中配置OAuth支持。

验证

1.检查SIP OAuth模式是否全局启用。

2.验证Expressway-C SAN条目已成功推送到CUCM。

3.验证Expressway-C上的CEOAuth区域。

4.验证CallManager进程在SIP OAuth端口上侦听。

故障排除

Jabber日志示例（本地）

场景1 - SIP OAuth注册端口不匹配

场景2 — 来自Expressway的未知CA

场景3 — 来自UCM的未知CA

简介

本文档介绍在Cisco Jabber中实施SIP OAuth模式的配置和基本故障排除步骤。

先决条件

要求

Cisco 建议您了解以下主题：

- Jabber软电话注册

- 统一通信管理器(UCM)

- 移动和远程访问(MRA)解决方案

使用的组件

支持SIP OAuth模式的最低软件版本：

- 思科UCM 12.5

- 思科Jabber 12.5

- 思科Expressway X12.5

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

限制

启用SIP OAuth模式时，不支持启用摘要身份验证和TFTP加密配置选项。

背景信息

主要好处

保护Cisco Jabber软电话的SIP信令和媒体当前涉及多个配置步骤。最困难的是安装和更新客户端证书(LSC)，尤其是当Cisco Jabber设备在本地和外部之间切换时，以及保持CTL文件中的证书保持最新。

SIP OAuth模式允许Cisco Jabber软电话使用OAuth自描述令牌而不是客户端LSC证书在安全SIP接口上进行身份验证。在UCM SIP接口上支持OAuth，可为本地Jabber和MRA部署提供安全信令和媒体，而无需混合模式或CAPF操作。

SIP OAuth模式支持Cisco Jabber的主要优势：

- 启用永远在线加密，无需额外的管理负担。

- 无需混合模式（无CTL更新、证书维护等），即可为Cisco Jabber提供安全信令和媒体

- 无需在Jabber客户端上安装和维护LSC。

- 在多台设备（笔记本电脑/移动设备……）上使用LSC的挑战

- 在新设备上安装Jabber时，需要CAPF操作。

- 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用于本地部署， sipMRAOAuthPort 用于基于MRA的部署。本示例显示默认值 — sipOAuthPort 5090和sipMRAOAuthPort 5091。这些值是可配置的，并且在每个CUCM节点上可能不同。

如果SIP OAuth模式被禁用，则Jabber将旧式非安全(5060)或安全(5061)端口用于SIP注册。

注意：Cisco UCM使用SIP电话OAuth端口(5090)通过TLS侦听来自Jabber OnPremise设备的SIP线路注册。但是，UCM使用SIP移动远程访问端口（默认为5091）通过mLTS从Expressway上的Jabber监听SIP线路注册。这两个端口都可配置。请参阅配置部分。

CallManager服务在sipOAuthPort和sipMRAOAuthPort上侦听。但是，两个端口都使用Tomcat证书和Tomcat-trust进行传入TLS/mTLS连接。确保您的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

注意：

确保在配置SIP OAuth模式之前完成以下步骤：

- MRA已配置，且连接在Unified Communication Manager(UCM)和Expressway之间建立（仅在MRA使用时适用）。

- UCM注册到智能或虚拟帐户，允许导出控制功能。

1.配置刷新登录。

为Cisco Jabber客户端配置使用OAuth访问令牌和刷新令牌的刷新登录。从Cisco Unified CM管理中，选择系统>企业参数。

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管理中，选择系统>电话安全配置文件。选择Enable OAuth Authentication 以启用终端的SIP OAuth支持。

配置 — MRA上的Jabber

预安曲

在配置MRA上Jabber的SIP OAuth模式之前，请完成本文“配置 — 本地Jabber”一章中的步骤1-4。

步骤1.启用Refresh Login over MRA。

在MRA上使用Cisco Jabber配置SIP OAuth身份验证之前，必须在Expressway上启用刷新登录（也称为自描述令牌）。在Expressway-C上，导航至Configuration > Unified Communications > Configuration，并确保Authorize by OAuth Token with refresh参数设置为On。

步骤2.刷新Expressway-C中的Unified CM节点。

导航至Configuration > Unified Communications > Unified CM服务器。发现或刷新Expressway-C中的Unified CM节点。

注意：在Expressway-C中自动创建新的CEOAuth(TLS)区域。例如，CEOAuth <Unified CM name>。创建搜索规则，将从MRA上的Jabber发出的SIP请求代理到Unified CM节点。此区域使用TLS连接，无论Unified CM是否配置了混合模式。要建立信任，Expressway-C还会将主机名和主题备用名称(SAN)详细信息发送到Unified CM集群。请参阅本文的验证部分，确保配置正确。

步骤3.在安全配置文件中配置OAuth支持。

从Cisco Unified CM管理中，选择系统>电话安全配置文件。在分配给Cisco Jabber的配置文件上启用OAuth支持。

验证

1.检查SIP OAuth模式是否全局启用。

从Cisco Unified CM管理验证OAuth模式，选择System > Enterprise Parameters。

或者，使用Admin CLI — 运行命令：运行sql select paramvalue FROM processconfig WHERE paramname = 'ClusterSIPOAuthMode'

可能的值：0 — 表示禁用（默认），1 — 表示启用。

2.验证Expressway-C SAN条目已成功推送到CUCM。

Expressway-C通过AXL将其证书的CN/SAN详细信息发送到UCM。这些详细信息保存在expresswayconfiguration表中。每次发现或刷新Expressway-C中的Unified CM节点时，都会调用此过程。这些条目用于在UCM和Expressway-C之间建立信任。在MTLS连接到SIP MRA OAuth端口（默认为5091）期间，会根据这些条目检查Expressway-C证书的CN/SAN字段。 如果验证失败，则MTLS连接失败。

从Cisco Unified CM管理验证条目，选择Device > Expressway-C（从UCM 12.5.1Su1开始提供）

或者，使用Admin CLI — 运行命令：从expresswayconfiguration运行sql select *

3.验证Expressway-C上的CEOAuth区域。

导航至Expressway-C >配置>区域>区域。确保所有新创建的CEOAuth区域都处于活动状态。

4.验证CallManager进程在SIP OAuth端口上侦听。

从管理CLI运行命令：show open ports regexp 5090（默认SIP OAuth端口）

从管理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发送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支持

- 在5090端口上通过TLS（而非mTLS）接收的消息

场景2 — 来自Expressway的未知CA

Expressway-C无法在sipMRAOAuthport上与UCM建立mTLS握手（默认5091）。 Expressway-C不信任UCM共享的证书，并在mTLS设置期间以未知CA消息作出响应。

可能的解决方案:CallManager服务在mTLS握手期间发送其Tomcat证书。确保您的Expressway-C信任UCM的Tomcat证书的签名者。

场景3 — 来自UCM的未知CA

Expressway-C无法在sipMRAOAuthport上与UCM建立mTLS握手（默认5091）。UCM不信任Expressway共享的证书，并在mTLS设置期间以未知CA消息作出响应。

从此通信捕获数据包(UCM 10.x.x.198、Expressway-C 10.x.x.182):

可能的解决方案:UCM在SIP OAuth端口的mTLS握手期间使用Tomcat信任存储验证传入证书。确保Expressway-C的签名者证书已正确上传到UCM。