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

Azure AD B2C自定义Role属性作为应用声明返回报错求助

解决Azure AD B2C添加自定义Role声明时的AADB2C90037错误

针对你遇到的问题,按以下步骤排查和修复:

1. 确认ClaimType定义的正确性

自定义属性在Azure AD B2C中存储时会自动添加extension_前缀,你的ClaimType定义需满足:

  • Id可设为Role(方便后续引用)
  • 需指定对应存储属性名extension_Role
  • 添加只读配置和允许空值(避免无属性值时触发错误)

示例代码:

<ClaimType Id="Role">
  <DisplayName>Role</DisplayName>
  <DataType>string</DataType>
  <UserInputType>Readonly</UserInputType>
  <AllowNull>true</AllowNull>
</ClaimType>

2. 修正技术配置文件的输出声明映射

在AAD-UserReadUsingEmailAddress和AAD-UserReadUsingObjectId技术配置文件中,输出声明必须明确映射到存储的extension_Role属性,否则会因找不到属性报错:

<OutputClaims>
  <!-- 保留原有输出声明 -->
  <OutputClaim ClaimTypeReferenceId="Role" PartnerClaimType="extension_Role" />
</OutputClaims>

3. 检查注册流程的属性处理(可选)

由于该属性仅管理员可编辑,注册流程中需避免强制用户填写。若你的注册技术配置文件(如AAD-UserWriteUsingLogonEmail)中添加了该属性的输入声明,需立即删除,防止注册时出错。

4. 验证策略文件的语法正确性

检查修改后的TrustFrameworkExtensions.xml和signup_signin.xml是否存在XML语法错误,比如标签未闭合、ClaimType Id拼写错误等,可借助XML校验工具快速排查。

5. 确认自定义属性的存在性

登录Azure门户进入你的B2C租户,在用户属性中确认Role自定义属性已创建,且系统存储名称为extension_Role。

完成以上修改后,重新上传策略文件并测试,即可正常返回Role声明。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 00:07:21