Microsoft Entra 外部 ID 中的本机身份验证
适用于: 员工租户 外部租户(了解详细信息)
Microsoft Entra 的本机身份验证允许完全控制移动和桌面应用程序登录体验的设计。 与基于浏览器的解决方案不同,本机身份验证使你能够创建具有视觉吸引力、像素完美的身份验证屏幕,这些屏幕可以无缝融入应用的界面。 使用此方法,可以完全自定义用户界面,包括设计元素、徽标放置和布局,从而确保一致且品牌化的外观。
标准应用登录过程依赖于浏览器委托的身份验证,通常会导致身份验证期间发生中断性转换。 用户将临时重定向到系统浏览器进行身份验证,只有在登录完成后才能返回应用。
虽然浏览器委托的身份验证具有减少攻击途径和支持单一登录 (SSO) 等优势,但它们的 UI 自定义选项有限,并且用户体验不佳。
可用身份验证方法
目前,本机身份验证支持两种身份验证方法的本地帐户标识提供者:
- 使用一次性密码 (OTP) 登录的电子邮件。
- 支持自助密码重置 (SSPR) 的电子邮件和密码登录。
本机身份验证尚不支持联合标识提供商,例如社交或企业标识。
何时使用本机身份验证
涉及到在外部 ID 上对移动和桌面应用实现身份验证时,有两种选择:
- Microsoft 托管的浏览器委托身份验证。
- 基于完全自定义 SDK 的本机身份验证。
选择的方法取决于应用的具体要求。 尽管每个应用都有独特的身份验证需求,但仍需要记住一些常见的注意事项。 无论是选择本机身份验证还是浏览器委托的身份验证,Microsoft Entra 外部 ID 都能提供支持。
下表比较了两种身份验证方法,以帮助你确定适合应用的正确选项。
浏览器委托的身份验证 | 本机身份验证 | |
---|---|---|
用户身份验证体验 | 用户将被转到系统浏览器或嵌入式浏览器进行身份验证,并仅在登录完成后重定向回应用。 如果重定向不会对最终用户体验产生负面影响,则建议使用此方法。 | 用户无需离开应用,即可享受丰富的本机注册和登录体验。 |
自定义体验 | 托管的品牌和自定义选项作为开箱即用的功能提供。 | 这种以 API 为中心的方法具有较高的自定义水平,在设计方面具有广泛的灵活性,并且能够创建自定义交互和流程。 |
适用性 | 适用于员工、B2B 和 B2C 应用,可用于本机应用、单页应用和 Web 应用。 | 对于客户第一方应用,如果授权服务器和应用由同一实体运营,则用户将两者视为同一实体。 |
上线工作 | 低 。 开箱即用。 | 高 。 开发人员构建、拥有和维护身份验证体验。 |
维护工作 | 低 。 | 高 。 对于 Microsoft 发布的每个功能,都需要更新 SDK 才能使用它。 |
安全性 | 最安全的选项。 | 与开发人员共同承担安全责任,并且需要遵循最佳实践。 很容易受到网络钓鱼攻击。 |
支持的语言和框架 |
|
|
功能可用性
下表显示了浏览器委托的和本机身份验证的身份验证功能的可用性。
浏览器委托的身份验证 | 本机身份验证 | |
---|---|---|
使用电子邮件一次性密码 (OTP) 注册和登录 | ✔️ | ✔️ |
使用电子邮件和密码注册和登录 | ✔️ | ✔️ |
自助式密码重置 (SSPR) | ✔️ | ✔️ |
自定义声明提供程序 | ✔️ | ✔️ |
社交标识提供商登录 | ✔️ | ❌ |
使用电子邮件一次性密码 (OTP) 进行多重身份验证 | ✔️ | ❌ |
使用短信进行多重身份验证 | ✔️ | ❌ |
单一登录 (SSO) | ✔️ | ❌ |
如何启用本机身份验证
首先,查看上述关于何时使用本机身份验证的准则。 然后,与应用程序的业务所有者、设计人员和开发团队进行内部讨论,以确定是否需要本机身份验证。
如果团队已确定应用程序需要本机身份验证,请执行以下步骤,以在 Microsoft Entra 管理中心启用本机身份验证:
- 登录 Microsoft Entra 管理中心。
- 浏览到“应用程序”>“应用注册”,然后选择你的应用。
- 导航到“身份验证”,然后选择“设置”选项卡。
- 选择“允许本机身份验证”和“允许公共客户端流”字段。
启用“允许本机身份验证”和“允许公共客户端流”后,请相应地更新配置代码。
更新配置代码
在管理中心启用本机身份验证 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 参考文章。