Microsoft用于身份验证和访问控制体系结构的 Entra 外部 ID 部署指南

身份验证有助于验证标识,访问控制是授权用户和组访问资源的流程。

身份验证协议和终结点:客户应用和身份验证

面向客户的应用程序可以使用 Open Authorization 2.0(OAuth 2)或安全断言标记语言 2.0(SAML 2)通过 Microsoft Entra 外部 ID 进行身份验证。

下表汇总了 OAuth 2 和 OpendID Connect(OIDC)的应用程序集成选项。

应用程序类型 身份验证启动者 身份验证选项
本机客户端:移动和平台应用 与应用交互的用户 - 本机身份验证使用Microsoft身份验证库(MSAL)
- 授权代码
- 混合进行
在服务器上运行的 Web 应用程序 与应用程序交互的用户 授权代码
在浏览器上运行的 Web 应用程序(单页应用程序)(SPA) 与应用程序交互的用户 - 本机身份验证使用 MSAL
- 授权代码
- 混合或隐式身份验证,以及用于代码交换的证明密钥(PKCE)
在服务器上运行的 Web 应用程序:中间件 代表用户的应用程序 代表……名义
在服务器上运行的 Web 应用程序 无界面服务或应用程序 客户端凭据
有限的输入设备 与设备交互的用户 设备代码流

注释

关于代表,提交给中间件和后端的子声明(主体声明)有所不同。 在访问令牌声明引用中查看有效负载。 主题是用于应用程序 ID 的唯一成对标识符。 如果用户使用不同的客户端 ID 登录到两个应用程序,则应用程序会收到两个使用者声明值。 请在这两个值依赖于体系结构和隐私要求时使用。 请注意对象标识符(OID)声明,该声明在租户中的所有应用程序中始终一致。

OAuth 2 和 OIDC 流的下图显示了 OAuth 应用程序集成选项。

OAuth 2 和 OIDC 流与 OAuth 应用集成选项的关系图。

SAML 的应用程序集成选项基于服务提供商(SP)发起的流。 SAML 流程在 Microsoft Entra ID 的身份验证中得到了详细说明。

自定义身份验证扩展设计

使用自定义身份验证扩展以集成外部系统,定制 Microsoft Entra 认证体验。 在下图中,请注意从注册到返回令牌的进度。

请参阅 自定义身份验证扩展概述

下图显示了自定义身份验证流。

自定义扩展流的示意图。

API 和事件处理程序注意事项

可以将 API 实现为专用 API,或者使用中间件解决方案(例如 API 管理器)来实现 API 门面。 每个自定义扩展都有严格类型的 API 协定。 注意定义。

详细了解 authenticationEventListener 资源类型

注释

上一篇文章中的列表随着我们添加更多资源类型而增长。

Microsoft为生成 Azure Functions 应用的 .NET 开发人员提供 NuGet 包。 此解决方案处理传入Microsoft Entra 身份验证事件的 HTTP 请求的后端处理。 查找令牌验证来保护 API 调用、对象模型、IDE IntelliSense 类型。 还可以查找 API 请求和响应架构的入站和出站验证。

身份验证扩展与登录和注册流程一致进行执行。 确保方案高性能、可靠且安全。 Azure Functions 提供安全基础结构,包括库、用于机密存储、缓存、自动缩放和监视的 Azure Key Vault安全操作中还有其他建议。

后续步骤

使用以下文章帮助你开始使用 Microsoft Entra 外部 ID 部署: