iOS에 대한 인증서 기반 인증이 사용자 인증서를 묻는 메시지를 표시하지 못함

증상

유효한 사용자 인증서가 있는 Apple iOS 디바이스의 페더레이션된 사용자는 Microsoft Entra ID 대해 CBA(Certificate-Based 인증)를 수행할 수 없음을 발견합니다. 그러나 Android 및 Windows 디바이스의 페더레이션된 사용자는 CBA를 사용하여 성공적으로 인증할 수 있습니다. 동일한 iOS 사용자는 사용자 이름과 암호를 사용하여 인증할 때 아무런 문제가 발생하지 않습니다.

iOS에서 ADAL 지원 Office 애플리케이션에 로그인할 때 인증할 수 없는 iOS 사용자의 일반적인 환경은 다음과 같습니다.

  1. 사용자가 Office 앱 설정 환경을 안내합니다. "Office365" 로그인 페이지에서 사용자가 로그인을 클릭합니다.
  2. 사용자가 페더레이션된 전자 메일 주소를 입력한 다음 다음을 클릭하는 ADAL 로그인 페이지가 나타납니다.
  3. ADAL 로그인 프로세스는 시간이 초과될 때까지 빈 페이지에 중단되고 "계정에 문제가 있습니다. 나중에 다시 시도하세요." 오류가 발생했습니다. 이 페이지에는 확인을 탭하는 옵션이 포함되어 있습니다.
  4. 사용자가 확인을 탭하면 맨 위에 있는 옵션이 있는 동일한 빈 로그인 페이지에 앉아 뒤로를 탭합니다.
  5. 뒤로를 탭하면 ADAL 로그인 페이지가 반환됩니다. 그러면 프로세스가 시작됩니다. 사용자에게 페더레이션된 전자 메일 주소를 입력하라는 메시지가 표시되고 다음을 클릭합니다.
  6. 확인을 탭하면 사용자가 UserPrincipalName을 입력하고 프로세스를 반복할 수 있는 빈 로그인 화면으로 돌아갑니다.

Office 애플리케이션을 요소로 제거하려면 iOS 환경의 페더레이션된 사용자가 "추가 정보" 섹션의 단계에 따라 Safari 브라우저에서 인증서 기반 인증을 테스트하는 것이 좋습니다. Safari 브라우저에서 인증 https://portal.office.com 할 수 없는 iOS 사용자의 일반적인 환경은 다음과 같습니다.

  1. X.509 인증서를 사용하여 로그인 링크를 클릭한 후 사용자에게 사용자 인증서 사용을 승인하라는 메시지가 표시되지 않습니다.

  2. 페더레이션된 사용자는 응답하지 않는 STS 로그인 페이지에 있거나 기본 STS 로그인 페이지로 이동하여 다음과 같이 메시지가 표시됩니다.

    인증에 사용할 인증서를 선택합니다. 작업을 취소하는 경우 브라우저를 닫고 다시 시도하세요.

    참고 AD FS에서 다른 인증 방법을 사용하도록 설정하면 사용자에게 "다른 옵션으로 로그인"이라는 링크도 표시됩니다. 이 링크를 클릭하면 STS 로그인 페이지로 돌아갑니다.

  3. 두 환경 모두 다음 오류로 실패합니다.

    서버가 응답을 중지했기 때문에 Safari에서 페이지를 열 수 없습니다.

원인

MDM 정책이 SCEP 프로필과 함께 루트 인증서만 Apple 디바이스에 푸시할 때 발급하는 하위 CA 인증서가 디바이스에서 예상대로 검색되지 않으므로 인증서 체인이 불완전합니다.

사용자 인증서의 AIA 경로에 발급 하위 CA의 *.crt 파일을 가리키는 유효한 URL이 있더라도 iOS 디바이스는 발급 CA의 *.crt 파일을 올바르게 획득하지 못합니다.

해결 방법

고객이 Intune 사용하여 디바이스를 관리하는 경우 중간 인증 기관의 *를 가리키는 iOS 신뢰할 수 있는 루트 인증서에 대한 새 구성 정책을 만들도록 조언합니다. CER 파일. 그런 다음 디바이스에서 회사 포털을 열고 정책을 새로 고치라고 조언합니다. 이제 연결이 성공해야 합니다.

추가 정보

번개 케이블을 사용하여 iPad에 연결된 OS X 클라이언트에서 "Apple Configurator 2" 추적을 사용하는 경우 추적 로그는 다음 예제와 유사합니다.

} 
Nov 2 15:53:49 CSSs-iPad MobileSafari(Accounts)[618] <Notice>: __51-[ACRemoteAccountStoreSession _configureConnection]_block_invoke.62 (57) "The connection to ACDAccountStore was invalidated."
Nov 2 15:53:49 CSSs-iPad MobileSafari(ProtectedCloudStorage)[618] <Notice>: KeychainGetStatus(PCSiCloudServiceMarkerName): keychain: -25300
Nov 2 15:53:49 CSSs-iPad MobileSafari(ProtectedCloudStorage)[618] <Notice>: KeychainGetStatus(PCSiCloudServiceMarkerName): status: off
Nov 2 15:53:49 CSSs-iPad accountsd(AccountsDaemon)[216] <Notice>: -[ACDServer listener:shouldAcceptNewConnection:] (320) "<private> (<private>) received"
Nov 2 15:53:49 CSSs-iPad MobileSafari(ProtectedCloudStorage)[618] <Notice>: PCSIdentitySetCreate: CloudKit { kPCSSetupDSID = "<<VALUE>>";
}
Nov 2 15:53:49 CSSs-iPad MobileSafari(Accounts)[618] <Notice>: __51-[ACRemoteAccountStoreSession _configureConnection]_block_invoke.62 (57) "The connection to ACDAccountStore was invalidated."
Nov 2 15:53:49 CSSs-iPad MobileSafari(ProtectedCloudStorage)[618] <Notice>: KeychainGetStatus(PCSiCloudServiceMarkerName): keychain: -25300
Nov 2 15:53:49 CSSs-iPad MobileSafari(ProtectedCloudStorage)[618] <Notice>: KeychainGetStatus(PCSiCloudServiceMarkerName): status: off
Nov 2 15:53:49 CSSs-iPad MobileSafari(ProtectedCloudStorage)[618] <Notice>: PCSIdentitySetCreate: CloudKit { kPCSSetupDSID = "<<VALUE>>";
}
...
Nov 2 15:54:33 CSSs-iPad com.apple.WebKit.Networking(libsystem_network.dylib)[619] <Info>: nw_connection_endpoint_report [8 sts.<name>.info:49443 in_progress resolver (satisfied)] reported event flow:finish_transport
Nov 2 15:54:33 CSSs-iPad com.apple.WebKit.Networking(CFNetwork)[619] <Notice>: TIC TCP Conn Cancel [1:0x13dd17990]
Nov 2 15:54:33 CSSs-iPad com.apple.WebKit.Networking(libsystem_network.dylib)[619] <Info>: nw_endpoint_handler_cancel [1 portal.office.com:443 ready resolver (satisfied)]
Nov 2 15:54:33 CSSs-iPad com.apple.WebKit.Networking(libsystem_network.dylib)[619] <Info>: nw_endpoint_handler_cancel [1.1 13.107.7.190:443 ready socket-flow (satisfied)]
Nov 2 15:54:33 CSSs-iPad com.apple.WebKit.Networking(libsystem_network.dylib)[619] <Notice>: __nw_socket_service_writes_block_invoke sendmsg(fd 4, 85 bytes): socket has been closed
Nov 2 15:54:33 CSSs-iPad com.apple.WebKit.Networking(libsystem_network.dylib)[619] <Info>: nw_endpoint_flow_protocol_disconnected [1.1 13.107.7.190:443 cancelled socket-flow (null)] Output protocol disconnected
Nov 2 15:54:33 CSSs-iPad com.apple.WebKit.Networking(CFNetwork)[619] <Notice>: TIC TCP Conn Destroyed [1:0x13dd17990]
Nov 2 15:54:33 CSSs-iPad com.apple.WebKit.Networking(CFNetwork)[619] <Notice>: TIC TLS Event [8:0x13dd4e0c0]: 2, Pending(0)
Nov 2 15:54:33 CSSs-iPad com.apple.WebKit.Networking(CFNetwork)[619] <Notice>: TIC TLS Event [8:0x13dd4e0c0]: 11, Pending(0)
Nov 2 15:54:33 CSSs-iPad com.apple.WebKit.Networking(CFNetwork)[619] <Notice>: TIC TLS Event [8:0x13dd4e0c0]: 12, Pending(0)
Nov 2 15:54:33 CSSs-iPad com.apple.WebKit.Networking(CFNetwork)[619] <Notice>: TIC TLS Event [8:0x13dd4e0c0]: 13, Pending(0)
Nov 2 15:54:34 CSSs-iPad securityd[88] <Notice>: items matching issuer parent: Error Domain=NSOSStatusErrorDomain Code=-25300 "no matching items found" UserInfo={NSDescription=no matching items found}