支持在自己开发的应用中通过 FIDO2 密钥进行无密码身份验证
这些配置和最佳做法将帮助你避免导致 FIDO2 无密码身份验证对应用程序用户不可用的常见情况。
一般最佳实践
域提示
请勿使用域提示来绕过主领域发现。 此功能旨在简化登录过程,但联合标识提供程序可能不支持无密码身份验证。
需要特定凭据
如果使用的是 SAML,请不要使用 RequestedAuthnContext 元素指定需要密码。
RequestedAuthnContext 元素是可选的,因此,若要解决此问题,可以将其从 SAML 身份验证请求中删除。 这是一般的最佳做法,因为使用此元素还可能阻止其他身份验证选项(如多重身份验证)正常工作。
使用最近用过的身份验证方法
用户首先会看到他们最近用过的登录方法。 当用户认为必须使用呈现的第一个选项时,这可能会导致混淆。 不过,他们可以选择其他选项,方法是选择“其他登录方式”,如下所示。
平台特定的最佳做法
桌面
用于实现身份验证的建议选项如下:
- 使用 Microsoft 身份验证库 (MSAL) 的 .NET 桌面应用程序应使用 Windows 身份验证管理器 (WAM)。 GitHub 上记录了此集成及其优点。
- 在嵌入式浏览器中使用 WebView2 支持 FIDO2。
- 使用系统浏览器。 默认情况下,桌面平台的 MSAL 库使用此方法。 你可以查阅我们的页面了解 FIDO2 浏览器兼容性,以确保你使用的浏览器支持 FIDO2 身份验证。
移动
将 MSAL 与 ASWebAuthenticationSession 或中转站集成配合使用的本机 iOS 应用支持 FIDO2。 中转站在 iOS 上的 Microsoft Authenticator 和 macOS 上的 Microsoft Intune 公司门户中提供。
确保网络代理不会阻止 Apple 关联的域验证。 FIDO2 身份验证要求 Apple 的关联域验证成功,这要求从网络代理中排除某些 Apple 域。 有关详细信息,请参阅在企业网络上使用 Apple 产品。
FIDO 2 对于本机 Android 应用的支持当前正在开发中。
如果未使用 MSAL,则仍应使用系统 Web 浏览器进行身份验证。 诸如单一登录和条件访问等功能依赖于系统 Web 浏览器提供的共享 Web 图面。 这意味着,使用 Chrome 自定义选项卡 (Android) 或 通过 Web 服务对用户进行身份验证 | Apple 开发人员文档 (iOS)。
Web 和单页应用
对于在 Web 浏览器中运行的应用程序,FIDO2 无密码身份验证的可用性将取决于浏览器和平台的组合。 可以参考我们的 FIDO2 兼容性矩阵来检查你的用户将遇到的组合是否受支持。