Azure AD B2C IEF自定义策略中Bearer认证的令牌过期处理与机制问询
Azure AD B2C IEF自定义策略中Bearer认证的令牌过期处理与机制解析
令牌过期处理方案
- 应用侧主动刷新:若Bearer令牌来自Azure AD B2C访问令牌,自定义策略不会自动刷新令牌。需在依赖方应用中实现刷新逻辑——检测令牌
exp声明,在即将过期前(如提前5分钟)调用B2C令牌端点,用刷新令牌换取新访问令牌,再将新令牌更新到策略密钥存储中。 - 策略内添加过期校验:在自定义策略的技术配置文件中,通过ClaimsTransformation实现令牌过期校验:
随后在技术配置文件的Preconditions中判断<ClaimsTransformation Id="CheckTokenExpiry" TransformationMethod="CompareDateTime"> <InputClaims> <InputClaim ClaimTypeReferenceId="exp" TransformationClaimType="inputClaim1" /> <InputClaim ClaimTypeReferenceId="currentDateTime" TransformationClaimType="inputClaim2" /> </InputClaims> <InputParameters> <InputParameter Id="operator" DataType="string" Value="greater than" /> <InputParameter Id="ignoreTimeZone" DataType="boolean" Value="true" /> </InputParameters> <OutputClaims> <OutputClaim ClaimTypeReferenceId="tokenIsExpired" TransformationClaimType="outputClaim" /> </OutputClaims> </ClaimsTransformation>tokenIsExpired值,若为true则触发重新认证流程,确保使用有效令牌。 - 更新策略密钥:获取新Bearer令牌后,调用Azure AD B2C Graph API的
UpdatePolicyKey操作,将新令牌作为密钥值传入,替换过期的密钥,保证策略后续调用的有效性。
令牌处理机制详解
- 令牌存储逻辑:如图所示,配置Bearer认证类型时传入的令牌,会以机密类型存储在Azure AD B2C的策略密钥容器中,仅策略内部可访问,不会对外暴露。
- 策略内使用流程:当策略需要调用外部API时,会自动从策略密钥中取出Bearer令牌,格式化为
Bearer {token}添加到请求的Authorization头,完成身份验证。 - 内置校验逻辑:策略会自动校验令牌的签名、Issuer、Audience等核心声明的合法性,但不会主动监控令牌的过期时间,需手动添加过期校验逻辑。
- 密钥生命周期管理:策略密钥本身可设置有效期,到期前必须手动更新密钥值(即新的Bearer令牌),否则策略调用外部API时会因令牌过期失败。
内容的提问来源于stack exchange,提问作者Rishi Parpyani
相关产品推荐
相关产品推荐

