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

Entra B2C自定义策略:邀请注册时自定义声明持久化至用户属性失败

Azure AD B2C 邀请注册自定义策略问题解决方案

一、解决声明未在用户旅程中输出的报错

报错核心是依赖方(RP)声明要输出的advisorId/clientId,但对应用户旅程SignInWithIdTokenHint的所有步骤里,没有任何步骤输出这两个声明。需补充以下配置:

  • 注册流程:确保IdTokenHint_ExtractClaims技术配置文件在注册步骤中被调用,且其<OutputClaims>节点包含advisorId和clientId,保证提取的声明能流入后续流程。
  • 登录流程:修改读取用户信息的技术配置文件(如AAD-UserReadUsingObjectId),在<OutputClaims>中添加:
    <OutputClaim ClaimTypeReferenceId="advisorId" PartnerClaimType="extension_AdvisorId" />
    <OutputClaim ClaimTypeReferenceId="clientId" PartnerClaimType="extension_ClientId" />
    
    同时确保登录用户旅程的步骤中调用了该技术配置文件,让声明能进入用户旅程的输出链路。

二、实现邀请声明到用户属性的持久化

要将提取的声明保存到用户属性,需修改注册用技术配置文件(如LocalAccountSignUpWithLogonEmail):

  1. 在<InputClaims>中添加接收声明的配置,确保注册流程能获取到邀请token中的值:
    <InputClaim ClaimTypeReferenceId="advisorId" />
    <InputClaim ClaimTypeReferenceId="clientId" />
    
  2. 在<PersistedClaims>中添加写入用户存储的映射,将声明关联到自定义用户属性(注意自定义属性自动带extension_前缀):
    <PersistedClaim ClaimTypeReferenceId="advisorId" PartnerClaimType="extension_AdvisorId" />
    <PersistedClaim ClaimTypeReferenceId="clientId" PartnerClaimType="extension_ClientId" />
    

三、确保登录时返回声明

除了在RP中配置输出声明,还需保证登录流程能正确读取并传递声明:

  • 确认读取用户信息的技术配置文件(如AAD-UserReadUsingObjectId)已添加advisorId和clientId的输出声明(参考第一部分登录流程的配置)。
  • 检查登录用户旅程的步骤顺序,确保在生成token前已执行用户信息读取步骤,让声明能被包含在最终的输出token中。

四、验证用户旅程步骤链路

检查SignInWithIdTokenHint用户旅程的步骤完整性:

  • 注册链路:提取邀请token声明 → 注册信息收集 → 写入用户属性 → 生成输出token
  • 登录链路:身份验证 → 读取用户属性(含advisorId/clientId) → 生成输出token
    确保每个环节的技术配置文件都正确输出所需声明,形成完整的声明传递链路。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 18:05:12