소개
이 문서에서는 Intune MDM(Mobile Device Management)을 Cisco ISE(Identity Services Engine)와 통합하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- Cisco ISE의 MDM 서비스에 대한 지식
- Microsoft Azure Intune 서비스에 대한 지식
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- Cisco Identity Services Engine 3.0
- Microsoft Azure Intune 응용 프로그램
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
MDM 서버는 모바일 운영자, 통신 사업자, 기업 전체에 구축된 모바일 디바이스를 보안, 모니터링, 관리 및 지원합니다. 이러한 서버는 구축된 환경에서 모바일 디바이스(예: 이메일 애플리케이션)의 일부 애플리케이션 사용을 제어하는 정책 서버 역할을 합니다. 그러나 네트워크는 ACL(Access Control List)을 기반으로 엔드포인트에 대한 세분화된 액세스를 제공할 수 있는 유일한 엔티티입니다. ISE는 MDM 서버에 필요한 디바이스 특성을 쿼리하여 해당 디바이스에 대한 네트워크 액세스 제어를 제공하는 ACL을 생성합니다. Cisco ISE는 Microsoft Intune MDM Server와 통합되어 장치가 온프레미스 리소스에 액세스하려고 할 때 조직이 기업 데이터를 보호할 수 있도록 지원합니다.
구성
네트워크 다이어그램
Microsoft Intune 구성
Intune 포털에서 ISE 트러스트된 저장소로 인증서 가져오기
테넌트가 있는 사이트에서 Intune 관리 콘솔 또는 Azure 관리 콘솔에 로그인합니다. 인증서 세부사항을 가져오려면 브라우저를 사용하십시오.
1단계. 웹 브라우저에서Microsoft Azure portal 를 엽니다.
2단계. 브라우저 도구 모음에서 잠금 기호를 클릭한 다음 View Certificates.
3단계. Certificate(인증서) 창에서 탭을 Certification Path 클릭합니다. 예를 들면 다음과 같습니다.
4단계. 일반적Baltimore Cyber Trust root, 으로 루트 CA를 찾습니다. 그러나 다른 루트 CA가 있으면 해당 루트 CA 인증서를 클릭합니다. 해당 루트 CA 인증서의 Details(세부사항) 탭에서 해당 인증서를 파일에 복사하고 BASE64 인증서로 저장할 수 있습니다.
5단계. ISE에서 방금 저장된 루트 인증서Administration > System > Certificates > Trusted Certificates, 로 이동하여 가져옵니다. 인증서에 다음과 같이 의미 있는 이름을 Azure MDM지정합니다. 중간 CA 인증서에 대해서도 이 절차를 반복합니다.
Azure 포털에서 ISE를 애플리케이션으로 배포
1단계. 로 이동하여 Azure Active Directory 선택합니다 App registrations.
2단계. 에서 ISE 이름으로 새 애플리케이션 등록을 App registrations, 생성합니다. 이 이미지에 표시된 대로 을 클릭합니다Create.
3단계. 애플리케이션을 수정하고 필요한 구성 요소를 추가하려면 선택합니다Settings.
4단계. 에서 필요한 권한을 Settings, 선택하고 다음 옵션을 적용합니다.
- Microsoft Graph
- 위임된 권한
- Microsoft Intune 장치 구성 및 정책 읽기
- Microsoft Intune 구성 읽기
- 사용자 로그인
- 언제든지 사용자의 데이터에 액세스
- Microsoft Intune API
- Microsoft Intune에서 장치 상태 및 규정 준수 정보 가져오기
- Windows Azure Active Directory
- 위임된 권한
- 디렉토리 데이터 읽기
- 로그인하고 사용자 프로필 읽기
컨피그레이션의 결과는 여기에 표시된 것과 유사합니다.
5단계. 모든 응용 프로그램 권한을 확인하려면 를 클릭합니다Grant Permissions. 이 프로세스는 5~10분 정도 소요됩니다. 내부 ISE CA 인증서를 가져오기 위해 생성된 애플리케이션에 대한 파일을Azure Manifest 편집합니다.
Azure의 응용 프로그램으로 ISE 인증서 가져오기
1단계. 응용 프로그램의 매니페스트 파일을 다운로드합니다.
참고: JSON 확장명을 가진 파일입니다. 파일 이름 또는 확장명을 편집하지 마십시오. 그렇지 않으면 실패합니다.
2단계. 모든 노드에서 ISE 시스템 인증서를 내보냅니다. PAN에서 Default self-signed server certificate(기본 자체 서명 서버 인증서)를 Administration > System > Certificates > System Certificates, 선택한 다음 을 클릭합니다Export.. (기본값)을 선택하고 Export Certificate Only저장할
위치를 선택합니다. 인증서에서 BEGIN 및 END 태그를 삭제하고 텍스트의 나머지 부분을 한 줄로 복사합니다. 이는 Legacy Option(레거시 옵션) 섹션에 설명된 2020년 6월 이전 버전에 적용됩니다.
2020년 6월 현재 포털에서는 인증서를 직접 업로드할 수 있습니다.
레거시 옵션:
1단계. 인증서를 BASE64로 전환하고 Azure JSON 매니페스트 파일로 제대로 가져오려면 PowerShell 프로시저를 실행합니다. Windows의 Windows PowerShell 또는 Windows PowerShell ISE 애플리케이션을 사용합니다. 다음 명령을 사용합니다.
$cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $cer.Import(“mycer.cer”) $bin = $cer.GetRawCertData() $base64Value = [System.Convert]::ToBase64String($bin) $bin = $cer.GetCertHash() $base64Thumbprint = [System.Convert]::ToBase64String($bin) $keyid = [System.Guid]::NewGuid().ToString()
2단계. 다음 단계에서 사용되는 $base64Thumbprint, $base64Value, 및 $keyid의 값을 유지합니다. 이 모든 값은 기본적으로 다음과 keyCredentials같으므로 JSON 필드에 추가됩니다.
이렇게 하려면 다음 순서대로 값을 사용하십시오.
"keyCredentials": [ { “customKeyIdentifier“: “$base64Thumbprint_from_powerShell_for_PPAN”, “keyId“: “$keyid_from_above_PPAN“, "type": "AsymmetricX509Cert", "usage": "Verify", "value": "Base64 Encoded String of ISE PPAN cert" }, { “customKeyIdentifier“: “$base64Thumbprint_from_powerShell_for_SPAN”, “keyId“: “$keyid_from_above_SPAN“, "type": "AsymmetricX509Cert", "usage": "Verify", "value": "Base64 Encoded String of ISE SPAN cert" } ],
3단계. ISE에서 사용된 인증서에서 의 유효성을 검사하기 위해 편집된 JSON파일을keyCredentials Azure Portal에 업로드합니다.
다음과 비슷해야 합니다.
4단계. Upload(업로드) 후에는 아래 value 필드가 keyCredentials 표시됩니다. Microsoft 측에서 이 값을 첫 번째 업로드 이후에 표시할 수 없도록 null 하기 때문입니다.
ISE에서 MDM 서버를 추가하는 데 필요한 값은 및 Microsoft Azure AD Graph API Endpoint 에서 복사할 수 OAUTH 2.0 Token Endpoint있습니다.
이러한 값은 ISE GUI에 입력해야 합니다. 새 서버Administration > Network Resources > External MDM 로 이동하여 추가합니다.
ISE |
Intune |
자동 검색 URL |
엔드포인트 > Microsoft Azure AD Graph API 엔드포인트 |
클라이언트 ID |
{Registered-App-Name} > 애플리케이션 ID |
토큰 발급 URL |
Endpoints(엔드포인트) > OAuth 2.0 토큰 엔드포인트 |
컨피그레이션이 완료되면 상태가 enabled(활성화됨)로 표시됩니다.
확인 및 문제 해결
sun.security.validator.ValidatorException에 기반한 "서버에 연결하지 못했습니다."
1단계. TRACE 레벨에서 다음 로그와 함께 지원 번들을 수집합니다.
portal (guest.log)
mdmportal (ise-psc.log)
external-mdm (ise-psc.log)
2단계. 다음 로그 ise-psc.log 를 확인합니다.
2016-10-17 12:45:52,158 DEBUG [admin-http-pool9300][] cisco.cpm.mdm.authtoken.MdmAzureActiveDirectoryClient -::::- ClientId - a46a6fd7-4a31-4471-9078-59cb2bb6a5ab, Token issuance endpoint - https://login
microsoftonline.com/273106dc-2878-42eb-b7c8-069dcf334687/oauth2/token, ResourceId/App Id uri - https://graph.windows.net
2016-10-17 12:45:52,329 DEBUG [admin-http-pool9300][] cisco.cpm.mdm.authtoken.MdmCertAndKeyUtil -::::- Certificate Friendly Name -USMEM-AM01-ISE.Sncorp.smith-nephew.com#USMEM-AM01-ISE.Sncorp.smith-nephew.c
om#00003
2016-10-17 12:45:52,354 DEBUG [admin-http-pool9300][] cisco.cpm.mdm.authtoken.MdmCertAndKeyUtil -::::- Result of command invocation
2016-10-17 12:45:52,363 DEBUG [admin-http-pool9300][] cisco.cpm.mdm.authtoken.MdmCertAndKeyUtil -::::- Result of command invocation
2016-10-17 12:45:52,364 DEBUG [admin-http-pool9300][] cisco.cpm.mdm.authtoken.MdmCertAndKeyUtil -::::- Successfuly decrypted private key
2016-10-17 12:45:52,794 ERROR [admin-http-pool9300][] cisco.cpm.mdm.authtoken.MdmAzureActiveDirectoryClient -::::- There is a problem with the Azure certificates or ISE trust store. sun.security.validator
.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
2016-10-17 12:45:52,794 ERROR [admin-http-pool9300][] cisco.cpm.mdm.authtoken.MdmAzureActiveDirectoryClient -::::- Unable to acquire access token from Azure
java.util.concurrent.ExecutionException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException
: unable to find valid certification path to requested target
이는 이 페이지에 있는 인증서를 graph.microsoft.com 가져와야 함을 나타냅니다.
3단계. 아이콘을 locker클릭하고 인증서 세부사항을 확인합니다.
4단계. 파일을 BASE64 형식으로 저장하고 ISE Trusted Store로 가져옵니다. 전체 인증서 체인을 가져와야 합니다. 그런 다음 MDM 서버에 대한 연결을 다시 테스트합니다.
Azure AD에서 인증 토큰을 가져오지 못했습니다.
일반적으로 이 오류는 매니페스트 파일에 잘못된 JSON ISE 인증서 체인이 포함되어 있을 때 발생합니다. 매니페스트 파일을 Azure에 업로드하기 전에 적어도 이 구성이 있는지 확인하십시오.
"keyCredentials": [ { “customKeyIdentifier“: “$base64Thumbprint_from_powerShell_for_PPAN”, “keyId“: “$keyid_from_above_PPAN“, "type": "AsymmetricX509Cert", "usage": "Verify", "value": "Base64 Encoded String of ISE PPAN cert" }, { “customKeyIdentifier“: “$base64Thumbprint_from_powerShell_for_SPAN”, “keyId“: “$keyid_from_above_SPAN“, "type": "AsymmetricX509Cert", "usage": "Verify", "value": "Base64 Encoded String of ISE SPAN cert" } } ],
앞의 예는 PAN 및 SAN이 있는 시나리오를 기반으로 합니다. PowerShell에서 스크립트를 다시 실행하고 올바른 BASE64 값을 가져옵니다. 매니페스트 파일을 업로드해 보세요. 오류가 발생하지 않아야 합니다.
$cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $cer.Import(“mycer.cer”) $bin = $cer.GetRawCertData() $base64Value = [System.Convert]::ToBase64String($bin) $bin = $cer.GetCertHash() $base64Thumbprint = [System.Convert]::ToBase64String($bin) $keyid = [System.Guid]::NewGuid().ToString()
Configure(구성) 섹션의 단계 $base64Thumbprint, $base64Value 에서 $keyid 설명한 와 의 값을 적용해야 합니다.
Azure AD에서 인증 토큰을 가져오지 못했습니다.
이 오류는 의 Azure 앱에 올바른 권한이 제공되지 않을 때 자주 portal.azure.com발생합니다. 앱에 올바른 특성이 있는지 확인하고 모든 변경 후에 클릭해야Grant Permissions 합니다.
이 메시지는 ISE가 토큰 발급 URL에 액세스하려고 할 때 ISE가 반환하지 않는 인증서를 반환할 때 발생합니다. 전체 CA 체인이 ISE 트러스트 저장소에 있는지 확인합니다. ISE의 신뢰할 수 있는 저장소에 올바른 인증서를 설치한 후에도 문제가 지속되면 패킷 캡처를 수행하고 무엇이 전송되는지 확인하기 위해 연결을 테스트합니다.
관련 정보