如何将自定义声明提供方的声明添加到Entra External ID/Azure AD访问令牌?
问题:Entra External Identities for Customers自定义声明仅出现在ID令牌,未进入访问令牌
背景情况
- 基于Entra External Identities for Customers的自定义声明提供方API完成配置,需求是将外部系统的声明注入访问令牌,但目前自定义声明仅出现在ID令牌中,访问令牌无相关内容
- 使用全新创建的Entra External Identities for Customers租户,先后测试SPA登录流程、设备代码流,结果一致
- 今年年初曾通过Azure AD B2C的API Connectors成功实现访问令牌的声明 enrichment,考虑切换回该方案
原因分析
Entra External Identities for Customers的自定义扩展机制,默认逻辑是将自定义声明添加到ID令牌(用于用户身份标识);而访问令牌面向资源服务器,默认仅包含授权核心声明,自定义声明不会自动注入,需额外配置声明与资源的关联规则。
解决方案选项
选项1:配置自定义声明的资源范围映射
- 在Entra管理中心的客户租户下,找到目标客户端应用的应用注册
- 进入API权限模块,添加目标后端API的自定义范围(或创建专用范围用于承载自定义声明)
- 在自定义声明提供方的配置界面,将声明与目标资源的范围绑定,确保客户端请求访问令牌时携带该范围参数
选项2:应用程序声明映射配置
- 打开后端API对应的应用注册,进入令牌配置 -> 添加组声明或应用声明
- 选择添加应用声明,手动将自定义声明提供方返回的字段映射到访问令牌中
- 验证客户端请求访问令牌时,已正确指定目标API的资源标识符(client ID或应用ID URI)
选项3:切换回Azure AD B2C API Connectors
若上述配置成本较高或不符合当前租户支持场景,可复用你已验证的方案:
- API Connectors可在用户流/自定义策略的令牌颁发阶段,直接将外部系统声明注入访问令牌
- 适配灵活管控令牌内容的业务场景,且你已有成熟配置经验
内容的提问来源于stack exchange,提问作者user9360193
相关产品推荐
相关产品推荐

