Microsoft Entra 外部 ID 中的本地身份验证

适用于白色圆圈,带灰色 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语言
  • 爪哇岛
  • Android (Kotlin,Java)
  • iOS/macOS (Swift,Objective-C)
对于其他语言和平台,可以使用 本机身份验证 API

功能可用性

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

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

如何启用本机身份验证

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

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

  1. 登录到 Microsoft Entra 管理中心
  2. 浏览到 应用程序>应用注册 ,选择要为其启用公共客户端和本机身份验证流的应用注册。
  3. 在“管理”下,选择“身份验证”。
  4. “高级设置”下,允许公共客户端流:
    1. 对于“启用以下移动和桌面流程”,请选择“是”。
    2. 对于“启用本机身份验证”,请选择“是”。
  5. 选择“保存”按钮。

更新配置代码

在管理中心启用本机身份验证 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 参考文章