选择身份验证方法

适用于绿色圆圈,带有白色复选标记符号,指示以下内容适用于外部租户。 外部租户(了解详细信息

浏览器委托的身份验证和本机身份验证是Microsoft Entra 外部 ID中的两种登录方法,用于定义面向客户的应用如何处理身份验证体验。 这两种方法都完全受支持,但它们在用户体验、开发工作量和安全模型中有所不同。 了解这些差异有助于选择最适合你的应用的方法。

借助 rowser 委托的身份验证,应用会将用户重定向到系统浏览器或嵌入式 Web 视图中Microsoft托管的登录页。 Microsoft Entra处理整个身份验证流,应用在登录完成后接收令牌。 此方法需要最少的代码,并提供内置的品牌自定义。

使用 本机身份验证,可以使用 Microsoft 身份验证库 (MSAL) SDK 或本机身份验证 API,使登录UI体验直接集成到应用程序中。 用户永远不会离开你的应用。 你可以控制 UI 的各个方面,但你的团队负责生成和维护身份验证体验。

何时使用浏览器委托的身份验证

浏览器委托的身份验证在以下情况下更合适:

  • 你的应用可以在登录期间容纳浏览器重定向,而不会中断用户体验。
  • 你更喜欢较低的实现和维护工作量。 Microsoft自动管理安全更新和新功能。
  • 你希望通过更少的代码支持最广泛的平台和语言。

有关特定功能可用性,请参阅 功能比较

何时使用本机身份验证

本机身份验证在以下情况下更合适:

  • 你需要完全控制登录 UI,以便它可以无缝地融入你的应用。
  • 浏览器重定向会中断目标平台的用户体验。
  • 你的组织同时运行应用和授权服务器,并且你的用户将他们视为单个实体。
  • 开发团队可以承担额外的实施工作和持续维护。

有关特定功能可用性,请参阅 功能比较

功能对比

下表显示了每种方法中可用的功能。

功能 浏览器委托的身份验证 本机身份验证
使用电子邮件一次性密码注册和登录 (OTP) ✔️ ✔️
使用电子邮件和密码注册和登录 ✔️ ✔️
使用电子邮件和密码登录可以使用用户名(别名)和密码 ✔️ ✔️
自助式密码重置 (SSPR) ✔️ ✔️
自定义声明提供程序 ✔️ ✔️
使用电子邮件一次性密码进行多重身份验证 (OTP) ✔️ ✔️
使用短信一次性密码进行多重身份验证(OTP) ✔️ ✔️
社交标识提供者登录(Apple、Facebook 和 Google)1 ✔️ ✔️
单一登录 (SSO)2 ✔️ ✔️

1 即使使用原生身份验证,社交登录仍会使用浏览器窗口完成标识提供程序步骤。

2 原生身份验证仅支持嵌入式 Web 视图的单点登录(SSO)。 通过系统浏览器的跨应用 SSO 不适用于本地身份验证。

支持的语言和框架

每种方法都支持以下语言和框架。

Approach 支持的语言和框架
浏览器委托的身份验证
  • ASP.NET Core
  • Android (Kotlin,Java)
  • iOS/macOS (Swift,Objective-C)
  • JavaScript
  • React
  • Angular
  • Node.js
  • Python
  • Java
本机身份验证
  • Android (Kotlin,Java)
  • iOS/macOS (Swift,Objective-C)
  • Web (JavaScript、React、Angular)
对于其他语言和平台,可以使用 本机身份验证 API

安全注意事项

浏览器委托的身份验证是更安全的选项。 Microsoft管理登录界面,从而降低您的应用遭受网络钓鱼和凭据盗取攻击的风险。

使用原生身份验证时,开发团队与Microsoft Entra共同承担安全责任。 团队必须遵循用于处理用户凭据的安全最佳做法。 在选择本机身份验证之前,请与应用的业务所有者和开发团队讨论安全隐患。

后续步骤

确定方法后,注册应用以继续集成,或返回到 规划指南 ,了解完整步骤序列:

浏览器委托的身份验证

本机身份验证