排查 iOS 和 macOS TLS/SSL 的 MSAL 问题

本文介绍如何排查使用用于 iOS 和 macOS 的 Microsoft Authentication 库 (MSAL) 时可能会遇到的问题

网络问题

错误 -1200:“出现 SSL 错误,无法安全地连接到服务器。”

此错误意味着连接不安全。 证书无效时会发生此错误。 有关详细信息(包括哪个服务器没有通过 TLS 检查),请参考错误对象的 userInfo 字典中的 NSURLErrorFailingURLErrorKey

此错误来自 Apple 的网络库。 NSURL 错误代码的完整列表位于 macOS 和 iOS 的 SDK 的 NSURLError.h 中。 有关此错误的更多详细信息,请参阅 URL Loading System Error Codes(URL 加载系统错误代码)。

证书问题

如果提供无效证书的 URL 连接到你要在身份验证流中使用的服务器,则在诊断问题时,可以先使用 SSL 验证服务(如 SSL 服务器测试)测试该 URL。 它会针对一系列广泛的方案和浏览器测试服务器,并针对许多已知漏洞进行检查。

默认情况下,Apple 的新应用传输安全性 (ATS) 功能会将更严格的安全策略应用到使用 TLS/SSL 证书的应用。 某些操作系统和 Web 浏览器已开始在默认情况下强制实施这些策略中的一部分。 出于安全原因,我们建议不要禁用 ATS。

使用 SHA-1 哈希的证书存在已知的漏洞。 大多数新式 Web 浏览器不允许使用 SHA-1 哈希的证书。

强制网络门户

当用户首次访问某个 Wi-Fi 网络且尚未被授予该网络的访问权限时,强制网络门户会向该用户提供一个网页。 它会截获用户的 Internet 流量,直至用户满足门户的要求。 在用户通过门户进行连接之前,预期会出现网络错误(因为用户不能连接到网络资源)。

后续步骤

了解强制网络门户和 Apple 的新应用传输安全性 (ATS) 功能。