Azure B2C外部IDP无需自定义策略添加自定义JWT声明可行吗?
在Azure B2C中使用外部IDP时,无自定义策略添加自定义声明至JWT的可行性
结论:无法直接通过外部IDP的/connect/token端点添加extension_前缀的自定义声明到Azure B2C生成的JWT中
原因分析
- Azure B2C用户流仅会传递两类声明到最终JWT:一是预定义的标准声明(如
GivenName、Email),二是你在用户流「用户属性」中明确配置为“返回声明”的自定义扩展属性(extension_*)。 - 你替换
GivenName的代码有效,是因为GivenName属于Azure B2C认可的标准声明,用户流会自动将外部IDP返回的该声明值同步到最终令牌。而extension_9322349238409238_SSN这类自定义扩展声明,若未完成对应配置,用户流不会将其纳入JWT:- 未在Azure B2C租户中创建对应自定义属性;
- 未在用户流中配置该属性为返回声明;
- 未将外部IDP的
SSN声明映射到Azure B2C的自定义属性。
无需自定义策略的可行方案
若你不想使用API连接器,可按以下步骤配置:
- 在Azure B2C租户中创建目标自定义属性(
extension_9322349238409238_SSN); - 进入对应用户流的「用户属性」设置,将该自定义属性添加为「返回的声明」;
- 在用户流的「身份提供商」配置中,将外部IDP返回的
SSN声明映射到你创建的自定义属性。
完成以上配置后,用户流会自动将外部IDP的SSN值同步到Azure B2C用户目录,并将该自定义声明包含在最终JWT中,全程无需用户输入。
内容的提问来源于stack exchange,提问作者martenolofsson
相关产品推荐
相关产品推荐

