You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure B2C如何在访问令牌中返回无extension_前缀的自定义声明

Azure AD B2C自定义策略:移除访问令牌中自定义声明的extension_前缀

核心修改文件说明

需要调整LocalAccounts入门包中的两个核心文件:

  • TrustFrameworkExtensions.xml:负责配置声明类型、用户存储映射逻辑
  • SignUpOrSignin.xml:依赖方策略,定义访问令牌最终输出的声明名称

分步修改指南

1. 配置声明类型与用户存储映射(TrustFrameworkExtensions.xml)

1.1 声明类型定义(你已完成此步骤,确认节点位置即可)

确保<ClaimType>节点位于<ClaimsSchema>节点下:

<ClaimsSchema>
    <ClaimType Id="extension_fhirUser">
       <DisplayName>fhirUser</DisplayName>
       <DataType>string</DataType>
       <UserHelpText>The fully qualified FHIR resource id associated with the user. (e.g Patient Resource)</UserHelpText>
    </ClaimType>
</ClaimsSchema>

1.2 读取用户信息时包含该声明

找到<TechnicalProfile Id="AAD-UserReadUsingObjectId">,在其<OutputClaims>节点中添加:

<OutputClaim ClaimTypeReferenceId="extension_fhirUser" />

此步骤确保用户登录时,系统从Azure AD B2C用户存储中读取该自定义属性。

1.3 注册时收集该声明(可选,若需用户注册时填写)

找到<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">,在其<InputClaims>节点添加输入声明:

<InputClaim ClaimTypeReferenceId="extension_fhirUser" />

同时在<OutputClaims>节点添加:

<OutputClaim ClaimTypeReferenceId="extension_fhirUser" />

此步骤确保用户注册时提交的该属性会被写入用户存储。

2. 定义访问令牌输出的无前缀声明(SignUpOrSignin.xml)

在<RelyingParty>节点下的<OutputClaims>中保留你的配置(格式正确即可):

<OutputClaim ClaimTypeReferenceId="extension_fhirUser" PartnerClaimType="fhirUser" />

这里的PartnerClaimType指定了访问令牌中显示的无前缀声明名称fhirUser。

3. 验证与测试

  • 确认Azure AD B2C租户中已创建自定义属性extension_fhirUser(可通过Azure门户「用户属性」界面添加)
  • 将修改后的XML文件重新上传到Azure B2C租户
  • 通过授权流测试,检查访问令牌中是否包含无前缀的fhirUser声明

内容的提问来源于stack exchange,提问作者Rakshit Shinde

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 11:03:24