목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

제한 사항

배경 정보

주요 이점

전체 아키텍처

컨피그레이션 - 온프레미스 Jabber

1. 새로 고침 로그인을 구성합니다.

2. OAuth 포트를 구성합니다.

3. SIP OAuth 모드를 활성화합니다.

4. Cisco CallManager 서비스를 다시 시작합니다.

5. 보안 프로필에서 OAuth 지원을 구성합니다.

컨피그레이션 - Jabber over MRA

전제 조건

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 모드를 구현하기 위한 컨피그레이션 및 기본 문제 해결 단계에 대해 설명합니다.

사전 요구 사항

요구 사항

다음 주제에 대한 지식을 보유하고 있으면 유용합니다.

- Jabber 소프트폰 등록

- UCM(Unified Communications Manager)

- MRA(Mobile and Remote Access) 솔루션

사용되는 구성 요소

SIP OAuth 모드를 지원하는 최소 소프트웨어 버전:

- Cisco UCM 12.5

- Cisco Jabber 12.5

- Cisco Expressway X12.5

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

제한 사항

SIP OAuth 모드가 활성화된 경우 Enable Digest Authentication 및 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의 문제

- 새 디바이스에 Jabber를 설치할 때마다 CAPF 작업이 필요합니다.

- MRA에서는 CAPF 작업이 지원되지 않습니다.

전체 아키텍처

Cisco Jabber 디바이스는 CSF 컨피그레이션 파일(http://<cucmIP>:6970/<CSF-device-name>.cnf.xml), 컨피그레이션 파일 예를 구문 분석하여 SIP 인터페이스에서 OAuth 인증이 활성화되었음을 인식합니다(간결성을 위해 몇 개의 줄이 생략됨).

Cisco Jabber는 sipOAuth 모드의 활성화 여부를 확인하기 위해 sipOAuthMode 매개변수를 읽습니다. 이 매개변수는 다음 값 중 하나를 가정할 수 있습니다.

- 0 - SIP OAuth를 사용할 수 없습니다.

- 1 - SIP OAuth가 활성화됨

SIP OAuth 모드가 활성화된 경우, Jabber는 이러한 매개변수 중 하나를 사용하여 SIP TLS 연결을 위한 포트(온-프레미스를 위한 sipOAuthPort 또는 MRA 기반 배포를 위한 sipMRAOAuthPort)를 결정합니다. 이 예에서는 기본값 sipOAuthPort 5090 및 sipMAOAuthPort 5091을 나타냅니다. 이러한 값은 구성 가능하며 각 CUCM 노드에서 서로 다를 수 있습니다.

SIP OAuth 모드가 비활성화된 경우, Jabber는 SIP 등록을 위해 레거시 비보안(5060) 또는 보안(5061) 포트를 사용합니다.

참고: Cisco UCM은 SIP Phone OAuth Port(5090)를 사용하여 TLS를 통해 Jabber 온프레미스 디바이스에서 SIP 회선 등록을 수신합니다. 그러나 UCM은 SIP Mobile Remote Access Port(기본값 5091)를 사용하여 Jabber에서 mLTS를 통해 Expressway를 통해 SIP 회선 등록을 수신합니다. 이 두 포트는 모두 구성 가능합니다. 컨피그레이션 섹션을 참조하십시오.

CallManager 서비스는 sipOAuthPort 및 sipMAOAuthPort 모두에서 수신합니다. 그러나 두 포트 모두 수신 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

참고:

SIP OAuth 모드를 구성하기 전에 아래 사항을 완료했는지 확인합니다.

- MRA가 구성되어 있고 UCM(Unified Communication Manager)과 Expressway 간에 연결이 설정되어 있습니다(MRA를 사용 중인 경우에만 해당).

- UCM이 내보내기 제어 기능을 허용하는 Smart 또는 Virtual 어카운트에 등록되었습니다.

1. 새로 고침 로그인을 구성합니다.

OAuth 액세스 토큰으로 새로 고침 로그인을 구성하고 Cisco Jabber 클라이언트에 대한 새로 고침 토큰을 구성합니다. Cisco Unified CM 관리에서 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(Cisco Unified 서비스 가용성)에서 Tools(툴) > Control Center - Feature Services(제어 센터 - 기능 서비스)를 선택합니다. 서비스가 활성화된 모든 노드에서 Cisco CallManager 서비스를 선택하고 다시 시작합니다.

5. 보안 프로필에서 OAuth 지원을 구성합니다.

Cisco Unified CM Administration(Cisco Unified CM 관리)에서 System(시스템) > Phone Security Profile(전화기 보안 프로파일)을 선택합니다. 엔드포인트에 대한 SIP OAuth 지원을 활성화하려면 Enable OAuth Authentication을 선택합니다.

컨피그레이션 - Jabber over MRA

전제 조건

MRA를 통한 Jabber에 대한 SIP OAuth 모드를 구성하기 전에 이 문서의 Configuration(컨피그레이션) - Jabber On Premises(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(새로 고침 매개 변수를 사용하여 OAuth 토큰으로 권한 부여)가 On(켜기)으로 설정되었는지 확인합니다.

2단계. Expressway-C에서 Unified CM 노드를 새로 고칩니다.

Configuration(컨피그레이션) > Unified Communications > Unified CM servers(Unified CM 서버)로 이동합니다. Expressway-C에서 Unified CM 노드를 검색하거나 새로 고칩니다.

참고: Expressway-C에서 새 CEOAuth(TLS) 영역이 자동으로 생성됩니다(예: CEOAuth <Unified CM name>). MRA를 통해 Jabber에서 시작되는 SIP 요청을 Unified CM 노드로 프록시하기 위해 검색 규칙이 생성됩니다. 이 영역은 Unified CM이 혼합 모드로 구성되었는지 여부에 관계없이 TLS 연결을 사용합니다. Expressway-C는 트러스트를 설정하기 위해 호스트 이름 및 주체 대체 이름(SAN) 세부 정보도 Unified CM 클러스터에 보냅니다. 올바른 구성이 제대로 되어 있는지 확인하려면 이 문서의 확인 부분을 참조하십시오.

3단계. 보안 프로필에서 OAuth 지원을 구성합니다.

Cisco Unified CM Administration(Cisco Unified CM 관리)에서 System(시스템) > Phone Security Profile(전화기 보안 프로파일)을 선택합니다. Cisco Jabber에 할당된 프로필에서 OAuth 지원을 활성화합니다.

다음을 확인합니다.

1. SIP OAuth 모드가 전역적으로 활성화되었는지 확인합니다.

Cisco Unified CM Administration(Cisco Unified CM 관리)에서 OAuth 모드를 확인하고 System(시스템) > Enterprise Parameters(엔터프라이즈 매개변수)를 선택합니다.

또는 관리 CLI - 명령을 실행합니다. sql select paramvalue FROM processconfig WHERE paramname = 'ClusterSIPOAuthMode' 명령을 실행합니다.

가능한 값은 0 - Disabled(비활성화됨)(기본값), 1 - Enabled(활성화됨)

2. Expressway-C SAN 항목이 CUCM에 푸시되었는지 확인합니다.

Expressway-C는 인증서의 CN/SAN 세부 정보를 AXL을 통해 UCM에 전송합니다. 이러한 세부 정보는 expresswayconfiguration 테이블에 저장됩니다. 이 프로세스는 Expressway-C에서 Unified CM 노드를 검색하거나 새로 고칠 때마다 호출됩니다. 이러한 항목은 UCM과 Expressway-C 간에 신뢰를 설정하는 데 사용됩니다. SIP MRA OAuth 포트에 대한 MTLS 연결 중에 Expressway-C 인증서의 CN/SAN 필드가 해당 항목과 비교됩니다(기본값 5091). 검증에 성공하지 못하면 MTLS 연결이 실패합니다.

Cisco Unified CM Administration(Cisco Unified CM 관리)에서 항목을 확인하고 Device(디바이스) > Expressway-C(UCM 12.5.1Su1 이상에서 사용 가능)를 선택합니다

또는 Admin CLI를 사용하여 명령을 실행합니다. expresswayconfiguration에서 sql select * 실행

3. Expressway-C에서 CEOAuth 영역을 확인합니다.

Expressway-C > Configuration > Zones > Zones로 이동합니다. 새로 생성된 모든 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 지원을 사용하도록 설정했습니다.

- mTLS 대신 TLS를 통해 5090 포트에서 수신된 메시지

시나리오 2 - Expressway의 알 수 없는 CA

Expressway-C가 sipMRAOAuthport(기본값 5091)에서 UCM과 mTLS 핸드셰이크를 설정할 수 없습니다. Expressway-C는 UCM에서 공유하는 인증서를 신뢰하지 않으며 mTLS 설정 중 Unknown CA 메시지로 응답합니다.

가능한 솔루션: CallManager 서비스는 mTLS 핸드셰이크 중에 Tomcat 인증서를 전송합니다. Expressway-C가 UCM의 Tomcat 인증서 서명자를 신뢰하는지 확인합니다.

시나리오 3 - UCM의 알 수 없는 CA

Expressway-C가 sipMRAOAuthport(기본값 5091)에서 UCM과 mTLS 핸드셰이크를 설정할 수 없습니다. UCM은 Expressway에서 공유하는 인증서를 신뢰하지 않으며 mTLS 설정 중 Unknown CA 메시지로 응답합니다.

이 통신에서 패킷 캡처(UCM 10.x.x.198, Expressway-C 10.x.x.182):

가능한 솔루션: UCM은 SIP OAuth 포트에서 mTLS 핸드셰이크를 수행하는 동안 Tomcat-trust 저장소를 사용하여 수신 인증서를 확인합니다. Expressway-C에 대한 서명자의 인증서가 UCM에 제대로 업로드되었는지 확인합니다.