Azure B2C访问令牌添加email可选声明失败,是否不支持该功能?
Azure B2C访问令牌可选声明问题解析
核心结论:Azure B2C 不支持通过应用清单的
optionalClaims配置向访问令牌添加预定义声明,你遇到的情况属于对文档适用范围的误解。关键差异说明:
- 你参考的文档是针对Azure AD(普通AAD租户)的,Azure B2C的可选声明逻辑与AAD存在显著区别。
- 在B2C中,应用清单里的
optionalClaims仅对ID令牌生效,无法用来修改访问令牌的声明内容。 - B2C访问令牌的所有声明,完全由用户流或自定义策略控制,和应用清单配置无关。
解决办法:
- 若要在访问令牌中包含
email声明,需通过用户流或自定义策略配置:- 用户流:进入对应用户流的「应用程序声明」设置,勾选「电子邮件」选项,保存后访问令牌会自动包含该声明。
- 自定义策略:在
RelyingParty节点的OutputClaims中添加如下配置,确保email声明被输出到访问令牌:<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
- 若要在访问令牌中包含
补充验证:
- 你提到自定义策略返回的ID令牌包含
email,是因为自定义策略本身可以同时控制ID令牌和访问令牌的声明输出,这和应用清单的配置无关。 - 调整
essential参数的取值不会改变结果,因为该配置逻辑不适用于B2C的访问令牌。
- 你提到自定义策略返回的ID令牌包含
内容的提问来源于stack exchange,提问作者Don R
相关产品推荐
相关产品推荐

