本机身份验证

适用于:带灰色 X 符号的白色圆圈。 员工租户 带白色勾号的绿色圆圈。 外部租户(了解详细信息

Microsoft Entra 的本机身份验证允许完全控制移动和桌面应用程序登录体验的设计。 与基于浏览器的解决方案不同,本机身份验证使你能够创建具有视觉吸引力、像素完美的身份验证屏幕,这些屏幕可以无缝融入应用的界面。 使用此方法,可以完全自定义用户界面,包括设计元素、徽标放置和布局,从而确保一致且品牌化的外观。

标准应用登录过程依赖于浏览器委托的身份验证,通常会导致身份验证期间发生中断性转换。 用户将临时重定向到系统浏览器进行身份验证,只有在登录完成后才能返回应用。

虽然浏览器委托的身份验证具有减少攻击途径和支持单一登录 (SSO) 等优势,但它们的 UI 自定义选项有限,并且用户体验不佳。

可用身份验证方法

目前,本机身份验证支持两种身份验证方法的本地帐户标识提供者:

  • 使用一次性密码 (OTP) 登录的电子邮件。
  • 支持自助密码重置 (SSPR) 的电子邮件和密码登录。

本机身份验证尚不支持联合标识提供商,例如社交或企业标识。

何时使用本机身份验证

涉及到在外部 ID 上对移动和桌面应用实现身份验证时,有两种选择:

  • Microsoft 托管的浏览器委托身份验证。
  • 基于完全自定义 SDK 的本机身份验证。

选择的方法取决于应用的具体要求。 尽管每个应用都有独特的身份验证需求,但仍需要记住一些常见的注意事项。 无论是选择本机身份验证还是浏览器委托的身份验证,Microsoft Entra 外部 ID 都能提供支持。

下表比较了两种身份验证方法,以帮助你确定适合应用的正确选项。

浏览器委托的身份验证 本机身份验证
用户身份验证体验 用户将被转到系统浏览器或嵌入式浏览器进行身份验证,并仅在登录完成后重定向回应用。 如果重定向不会对最终用户体验产生负面影响,则建议使用此方法。 用户无需离开应用,即可享受丰富的本机注册和登录体验。
自定义体验 托管的品牌和自定义选项作为开箱即用的功能提供。 这种以 API 为中心的方法具有较高的自定义水平,在设计方面具有广泛的灵活性,并且能够创建自定义交互和流程。
适用性 适用于员工、B2B 和 B2C 应用,可用于本机应用、单页应用和 Web 应用。 对于客户第一方应用,如果授权服务器和应用由同一实体运营,则用户将两者视为同一实体。
上线工作 低。 开箱即用。 高。 开发人员构建、拥有和维护身份验证体验。
维护工作 低。 高。 对于 Microsoft 发布的每个功能,都需要更新 SDK 才能使用它。
安全性 最安全的选项。 与开发人员共同承担安全责任,并且需要遵循最佳实践。 很容易受到网络钓鱼攻击。
支持的语言和框架
  • ASP.NET Core
  • Android(Kotlin、Java)
  • iOS/macOS(Swift、Objective-C)
  • JavaScript
  • React
  • Angular
  • Nodejs
  • Python
  • Java
  • Android(Kotlin、Java)
  • iOS/macOS(Swift、Objective-C)
对于其他语言和平台,可以使用本机身份验证 API

功能可用性

下表显示了浏览器委托的和本机身份验证的身份验证功能的可用性。

浏览器委托的身份验证 本机身份验证
使用电子邮件一次性密码 (OTP) 注册和登录 ✔️ ✔️
使用电子邮件和密码注册和登录 ✔️ ✔️
自助式密码重置 (SSPR) ✔️ ✔️
自定义声明提供程序 ✔️ ✔️
社交标识提供商登录 ✔️
使用电子邮件一次性密码 (OTP) 进行多重身份验证 ✔️
使用短信进行多重身份验证 ✔️
单一登录 (SSO) ✔️

如何启用本机身份验证

首先,查看上述关于何时使用本机身份验证的准则。 然后,与应用程序的业务所有者、设计人员和开发团队进行内部讨论,以确定是否需要本机身份验证。

如果团队已确定应用程序需要本机身份验证,请执行以下步骤,以在 Microsoft Entra 管理中心启用本机身份验证:

  1. 登录 Microsoft Entra 管理中心
  2. 浏览到“应用程序”>“应用注册”,然后选择你的应用。
  3. 导航到“身份验证”,然后选择“设置”选项卡。
  4. 选择“允许本机身份验证”和“允许公共客户端流”字段。

启用“允许本机身份验证”和“允许公共客户端流”后,请相应地更新配置代码。

更新配置代码

在管理中心启用本机身份验证 API 后,仍需更新应用程序的配置代码以支持 Android 或 iOS/macOS 的本机身份验证流。 为此,需要将质询类型字段添加到配置。 质询类型是值列表,应用使用该列表来通知 Microsoft Entra 有关其支持的身份验证方法。 可在此处找到有关本机身份验证质询类型的详细信息。 如果未更新配置以集成本机身份验证组件,则本机身份验证 SDK 和 API 将不可用。

启用本机身份验证的风险

Microsoft Entra 的本机身份验证不支持单一登录 (SSO),且由你的开发团队负责确保应用的安全性。

如何使用本机身份验证

可以使用本机身份验证 API 或适用于 Android 和 iOS/macOS 的 Microsoft 身份验证库 (MSAL) SDK 生成使用本机身份验证的应用。 建议尽可能使用 MSAL 向应用添加本机身份验证。

有关本机身份验证示例和教程的详细信息,请参阅下表。

语言/
平台
代码示例指南 构建和集成指南
Android (Kotlin) 将用户登录 将用户登录
iOS (Swift) 将用户登录 将用户登录
macOS (Swift) 将用户登录 将用户登录

如果打算在当前不受 MSAL 支持的框架上创建应用,则可以使用身份验证 API。 有关详细信息,请参阅此 API 参考文章