Azure AD B2C自定义策略:刷新令牌时idToken缺失email声明
解决Azure AD B2C刷新令牌时idToken缺失email声明的问题
你需要更新包含RefreshTokenReadAndSetup技术配置文件的策略文件,通常是TrustFrameworkBase.xml(如果你的自定义策略基于入门包的扩展结构,推荐在TrustFrameworkExtensions.xml中重写该技术配置文件,避免直接修改Base文件),具体配置步骤如下:
- 定位到
RefreshTokenReadAndSetup技术配置文件,在其<OutputClaims>节点中添加email声明的输出配置,确保刷新令牌流程能从用户存储中读取并返回该声明:
<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" />
- 同时确认你的
RelyingParty策略(通常在SignUpOrSignIn.xml这类文件)的<OutputClaims>中已经包含email声明(你初始登录时idToken有该声明,这一步大概率已经配置完成)。
原理说明:RefreshTokenReadAndSetup负责处理刷新令牌时的用户声明读取与初始化流程,只有在这里配置了email声明的输出,刷新令牌生成的idToken才会包含该字段。之前你在其他技术配置文件中添加的PersistedClaim只是将email存储到用户目录,但刷新流程不会自动读取未配置的声明,必须显式在该技术配置文件中声明输出。
内容的提问来源于stack exchange,提问作者Boland
相关产品推荐
相关产品推荐

