Azure AD B2C魔法链接登录自定义策略无法读取扩展属性求助
使用SignInWithMagicLink自定义策略时,通过AAD-UserReadUsingEmailAddress技术配置文件读取用户扩展属性extension_crmid但无法获取值,已添加对应输出声明的情况下,可从以下几点排查:
未声明对应的ClaimType
必须在策略的<BuildingBlocks>下的<ClaimsSchema>中定义extension_crmid的声明类型,否则策略无法识别该属性:<ClaimType Id="extension_crmid"> <DisplayName>CRM ID</DisplayName> <DataType>string</DataType> </ClaimType>扩展属性命名空间错误
ADB2C中扩展属性的实际存储名称格式为extension_<b2c-extensions-app-client-id-去除连字符>_crmid,而非直接的extension_crmid。需修改输出声明,通过PartnerClaimType指定正确的AD属性名:<OutputClaim ClaimTypeReferenceId="extension_crmid" PartnerClaimType="extension_<你的扩展应用客户端ID(无连字符)>_crmid" />技术配置文件权限不足
检查AAD-UserReadUsingEmailAddress中client_id对应的b2c-extensions-app应用是否拥有读取用户扩展属性的权限,需为其添加User.Read.All或Directory.Read.All的应用权限并完成管理员同意。用户属性未赋值
验证目标用户的extension_crmid属性是否已实际存在有效值:可通过Azure AD B2C门户的用户详情页,或调用Graph API查询用户属性确认。策略继承或缓存问题
若使用扩展策略,需确保正确继承基础策略的配置,未覆盖必要的ClaimsSchema或技术配置文件;同时检查策略版本号是否为最新,避免缓存导致配置未生效。
内容的提问来源于stack exchange,提问作者manish kiranagi

