自定义声明提供程序
本文概述了 Microsoft Entra 自定义声明提供程序。 当用户向应用程序进行身份验证时,可以使用自定义声明提供程序将声明添加到令牌中。 自定义声明提供程序由自定义身份验证扩展组成,它会调用外部 REST API 来从外部系统提取声明。 可以将自定义声明提供程序分配给目录中的一个或多个应用程序。
有关用户的关键数据通常存储在 Microsoft Entra ID 外部的系统中。 例如,辅助电子邮件、计费层或敏感信息。 某些应用程序可能依赖于这些属性才能按设计运行。 例如,应用程序可能会基于令牌中的声明阻止对某些功能的访问。
下面的视频很好地概述了 Microsoft Entra 自定义身份验证扩展和自定义声明提供程序:
对于以下方案,请使用自定义声明提供程序:
- 迁移旧系统 - 可能有旧式标识系统(如 Active Directory 联合身份验证服务 (AD FS))或数据存储(如 LDAP 目录),用于保存有关用户的信息。 你想要迁移这些应用程序,但无法将标识数据完全迁移到 Microsoft Entra ID。 你的应用可能依赖于令牌上的某些信息,并且无法重新架构。
- 与其他无法同步到目录的数据存储的集成 - 你可能用第三方系统或自己的系统来存储用户数据。 理想情况下,可以通过同步或直接迁移将此信息合并到 Microsoft Entra 目录中。 然而,这并非始终可行。 可能由于数据驻留、法规或其他要求而有所限制。
令牌颁发开始事件侦听器
事件侦听器是等待事件发生的过程。 自定义身份验证扩展使用“令牌颁发开始”事件侦听器。 当令牌即将颁发给应用程序时,将触发该事件。 触发事件时,会调用自定义身份验证扩展 REST API,来从外部系统提取属性。
若要设置自定义声明提供程序,需要使用令牌颁发启动事件创建 REST API,然后为令牌颁发事件配置自定义声明提供程序。
适用于 .NET 的 Azure Functions 客户端库的身份验证事件触发器
Azure Functions 的身份验证事件触发器允许实现自定义扩展来处理 Microsoft Entra ID 身份验证事件。 身份验证事件触发器处理用于身份验证事件的传入 HTTP 请求的所有后端处理。
- 用于保护 API 调用的令牌验证
- 对象模型、键入和 IDE intellisense
- API 请求和响应架构的入站和出站验证