适用于:
外部租户(了解详细信息)
Microsoft Entra的本机身份验证允许你完全控制移动和桌面应用程序登录体验的设计。 与基于浏览器的解决方案不同,本机身份验证允许你创建具有视觉吸引力的像素完美的身份验证屏幕,这些屏幕可以无缝地融入应用的界面。 使用此方法,可以完全自定义用户界面,包括设计元素、徽标放置和布局,确保外观一致且品牌化。
依赖于浏览器委托身份验证的标准应用登录过程通常会导致身份验证期间发生中断性转换。 用户暂时重定向到系统浏览器进行身份验证,只有在登录完成后才会返回到应用。
虽然浏览器委托的身份验证提供了诸如减少攻击途径和支持单一登录(SSO)等优势,但它提供有限的 UI 自定义选项。
何时使用本机身份验证
在外部 ID 上为移动和桌面应用实现身份验证时,有两个选项:
- Microsoft托管的浏览器委托身份验证。
- 完全自定义的基于 SDK 的原生认证。
选择的方法取决于应用的特定要求。 虽然每个应用都有唯一的身份验证需求,但需要考虑一些常见注意事项。 无论是选择本机身份验证还是浏览器委托的身份验证,Microsoft Entra 外部 ID都支持这两种身份验证。
有关这两种方法的并行比较,包括功能可用性、支持的语言和框架、用户体验、自定义和安全权衡,请参阅 “选择身份验证方法”。
如何启用本机身份验证
首先,查看 有关何时使用本机身份验证的准则。 然后,与应用程序的业务所有者、设计人员和开发团队进行内部讨论,以确定是否需要本机身份验证。
如果团队确定应用程序需要本机身份验证,请按照以下步骤在Microsoft Entra 管理中心中启用本机身份验证:
- 登录到 Microsoft Entra 管理中心。
- 浏览到应用注册,然后选择要为其启用公共客户端和本机身份验证流的应用注册。
- 在“管理”下,选择“身份验证”。
- 在 “重定向 URI 配置 ”选项卡上,允许公共客户端流:
- 对于“启用以下移动和桌面流程”,请选择“是”。
- 对于“启用本机身份验证”,请选择“是”。
- 选择“ 保存 ”按钮。
更新配置代码
在管理中心启用本机身份验证 API 后,仍需更新应用程序的配置代码以支持 Android 或 iOS/macOS 的本机身份验证流。 为此,需要将质询类型字段添加到配置。 质询类型是值列表,应用使用该列表来通知 Microsoft Entra 有关其支持的身份验证方法。 可以在 本机身份验证质询类型中找到有关本机身份验证质询类型的详细信息。 如果未更新配置以集成本机身份验证组件,则本机身份验证 SDK 和 API 不可用。
本机身份验证的安全注意事项
本机身份验证可让你的开发团队完全控制身份验证体验。 通过这种控制,你有责任在应用程序的实现中遵循安全最佳做法,例如安全令牌处理和传输安全 (HTTPS)。
单一登录 (SSO)
本机身份验证支持嵌入式 Web 视图的单一登录(SSO)。 这允许用户通过本机应用的 UI 登录一次,然后访问嵌入的 Web 视图(例如, WKWebView 在 iOS 或 WebView Android 上)中托管的 Web 资源,而不会遇到第二个登录提示。
应用通过使用本机身份验证 SDK 或 本机身份验证 API 检索访问令牌,并通过标头将其注入 Web 视图的 HTTP 请求 Authorization 来实现此目的。 Web 资源验证令牌并建立会话,从而提供从本机体验到 Web 内容的无缝转换。
有关实现步骤,请参阅 从本机应用实现单一登录到嵌入式 Web 视图。
注释
本机身份验证不支持通过系统浏览器进行跨应用 SSO。
如何使用本机身份验证
可以使用本机身份验证 API 或适用于 Android、iOS、macOS 和 Web 应用程序的 Microsoft 身份验证库 (MSAL) SDK 生成使用本机身份验证的应用。 尽可能使用 MSAL 向应用添加本机身份验证。
有关本机身份验证示例和教程的详细信息,请参阅下表:
| 语言/ 平台 |
快速入门 | 构建和集成指南 |
|---|---|---|
| Android (Kotlin) | • 用户登录 | • 用户登录 |
| iOS (Swift) | • 用户登录 | • 用户登录 |
| macOS (Swift) | • 用户登录 | • 用户登录 |
| React (Next.js) | • 快速入门 | • 教程 |
| Angular | • 快速入门 | • 教程 |
如果打算在 MSAL 当前不支持的框架上创建应用,可以使用我们的身份验证 API。 有关详细信息,请参阅 本机身份验证 API 参考。