You need to enable JavaScript to run this app. Azure AD B2C自定义策略添加自定义属性时出现信息校验失败报错
优惠活动
大模型
产品
解决方案
定价
更多

Azure AD B2C自定义策略添加自定义属性时出现信息校验失败报错

Azure AD B2C 自定义属性“Unable to validate the information provided”报错修正指南

报错核心定位

日志抛出的错误为:

400/Request_BadRequest: The following extension properties are not available: extension_f41be....._tipoUsuario

这个错误直接指向策略配置未正确关联b2c-extensions-app的扩展属性实体,并非自定义属性本身未创建,所有问题都出在TrustFrameworkExtensions.xml的配置逻辑上。

具体配置错误及修正方法

  • AAD-Common技术配置文件的Metadata键值对完全错位
    当前配置将应用ID、对象ID的取值当成了Metadata的Key名,没有使用规定的固定配置键,导致整个通用配置完全失效。正确的AAD-Common配置结构为:

    <TechnicalProfile Id="AAD-Common">
      <Metadata>
        <!-- 固定Key为ApplicationId,值填b2c-extensions-app的应用ID -->
        <Item Key="ApplicationId">你的b2c-extensions-app应用ID(如5bfd8xxx-xxxx)</Item>
        <!-- 固定Key为ObjectId,值填b2c-extensions-app的服务主体对象ID -->
        <Item Key="ObjectId">你的b2c-extensions-app对象ID(如18bd6xxx-xxxx)</Item>
      </Metadata>
    </TechnicalProfile>
    

    注意:Metadata的Key是Azure AD B2C约定的固定配置名,值才是从门户获取的对应ID,不能将ID值作为Key写入。

  • 所有AAD读写类技术配置文件未关联AAD-Common通用配置
    目前配置的AAD-UserWriteUsingLogonEmail、AAD-UserWriteProfileUsingObjectId、AAD-UserReadUsingEmailAddress、AAD-UserReadUsingObjectId四个技术配置文件,都没有通过IncludeTechnicalProfile节点引入AAD-Common的通用配置,即便AAD-Common的键值对修正完成,对应的配置也不会在读写流程中生效。每个AAD类技术配置文件都需要补充引入节点,示例:

    <TechnicalProfile Id="AAD-UserWriteUsingLogonEmail">
      <Metadata>
        <Item Key="client_id">你的b2c-extensions-app应用ID(去除横杠,即报错中f41be开头的那段值)</Item>
      </Metadata>
      <!-- 必须补充这行引入AAD-Common的通用配置 -->
      <IncludeTechnicalProfile ReferenceId="AAD-Common" />
      <PersistedClaims>
        <!-- 自定义属性引用必须使用完整全名字段 -->
        <PersistedClaim ClaimTypeReferenceId="extension_f41bexxxx_tipoUsuario" />
      </PersistedClaims>
    </TechnicalProfile>
    
  • 自定义属性的ClaimType引用名不匹配
    当前在PersistedClaims、OutputClaims节点中使用的extension_tipoUsuario是短名,但Azure AD B2C为目录扩展属性生成的正式命名规则为extension_{b2c-extensions-app应用ID去横杠}_属性名,即报错日志中提示的extension_f41be....._tipoUsuario。需要先在策略文件的ClaimsSchema段定义和这个全名完全一致的ClaimType,再在所有读写节点中引用该全名字段,不能使用短名替代。

修正后校验流程

  • 确认b2c-extensions-app上的tipoUsuario自定义属性已经完成创建,存在对应的目录实体,而非仅在策略文件中定义ClaimType
  • 按照B2C策略的上传顺序依次更新策略文件:先上传基础依赖策略,再上传扩展策略,最后上传依赖方策略,避免旧配置缓存导致校验失败
  • 注意区分两个不同的ID:b2c-extensions-app的应用ID(用于生成扩展属性命名前缀、作为client_id调用Graph接口)、应用对象ID(服务主体的ObjectId,用于权限校验),两个ID值不能混用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.13 05:54:06