iOS 的基于证书的身份验证无法提示用户证书

现象

Apple iOS 设备上具有有效用户证书的联合用户发现他们无法针对 Microsoft Entra ID 执行基于证书的身份验证(CBA)。 但是,Android 和 Windows 设备上的联合用户可以使用 CBA 成功进行身份验证。 使用用户名和密码进行身份验证时,同一 iOS 用户不会遇到任何问题。

下面是在 iOS 上登录到启用了 ADAL 的Office 应用lication 时无法进行身份验证的 iOS 用户的典型体验:

  1. 用户演练Office 应用设置体验。 在“Office365”登录页上,用户选择“登录”。
  2. 此时会显示 ADAL 登录页,用户在其中输入其联合电子邮件地址,然后选择“下一步”。
  3. ADAL 登录过程在空白页面挂起,直到超时并返回“帐户存在问题”。 请稍后重试“错误。 此页面包含点击“确定”选项。
  4. 如果用户点击“确定”,则他们位于同一空白登录页,顶部有“返回”选项。
  5. 点击“返回”会将用户返回到 ADAL 登录页,该过程将全面启动:系统会提示用户输入其联合电子邮件地址,然后选择“下一步”。
  6. 点击“确定”将返回到空白登录屏幕,用户可以在其中输入其 UserPrincipalName 并重复该过程。

若要消除Office 应用切片作为一个因素,建议在 Safari 浏览器中测试基于证书的身份验证的 iOS 环境中的联合用户,方法是按照“详细信息”部分中的步骤操作。 无法从 Safari 浏览器进行身份验证 https://portal.office.com 的 iOS 用户的典型体验如下所示:

  1. 当用户使用 X.509 证书链接选择登录后,不会按预期提示批准其用户证书的使用。

  2. 联合用户位于无响应的 STS 登录页,或前进到默认 STS 登录页,提示如下:

    选择要用于身份验证的证书。 如果取消该操作,请关闭浏览器,然后重试。

    请注意 ,如果在 AD FS 中启用了其他身份验证方法,用户还会看到一个链接,指出“使用其他选项登录”。如果他们选择此链接,则返回 STS 登录页。

  3. 这两种体验都失败,并出现以下错误:

    Safari 无法打开页面,因为服务器停止响应。

原因

证书链不完整,因为当 MDM 策略仅将根证书与 SCEP 配置文件一起推送到 Apple 设备时,设备不会按预期检索颁发从属 CA 证书。

iOS 设备无法从颁发 CA 正确获取 .crt 文件,即使用户证书上的 AIA 路径具有指向颁发从属 CA 中的 *.crt 文件的有效 URL。

解决方法

如果客户使用 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}