无法通过 UserFlows 从自定义 IDP (KeyCloak) 将自定义声明映射到 Azure AD B2C
Unable to map custom claims to Azure AD B2C from custom IDP (KeyCloak) via UserFlows
我的 Azure AD B2C 实例使用带有 OIDC 提供程序 (KeyCloak) 的自定义 IDP。在 KeyCloak 中,每个用户都有一个属性需要映射到 B2C 作为自定义声明。让我们将需要映射的声明称为“skillLevel”。该属性已添加到 KeyCloak 创建的令牌中,我可以验证该字段是否存在且是否正确。
注意:在配置 Custom IDP 表单(例如电子邮件)时,内置声明从 KeyCloak 正确映射到 Azure AD B2C 、名称和 ID。我 运行 遇到的问题是添加要映射到 B2C 的自定义用户属性。
在 Azure AD B2C 中,我创建了一个新的自定义用户属性并将其命名为“skillLevel”。在“User Flows”下,我 select 我的“Sign up and sign”政策和“Application claims " select编辑新创建的用户属性“skillLevel”并点击保存。
运行 用户流程和登录过程导致 id 令牌内没有声明。当 Identity Provider Access Token 声明被 selected 并通过用户流程然后解码现在在 id 令牌中传递的 KeyCloak 令牌时,我可以看到该字段技能等级.
我尝试过一些没有成功的事情:
- 正在更新应用程序清单以接受映射的声明并将该字段添加到 optionalClaims idToken 数组。
- 尝试下载用户流策略并将 PartnerClaimType 属性添加到 extension_skillLevel OutputClaim 并作为自定义策略重新上传。显然这是被禁止和不支持的。
- 更新 KeyCloak 范围以将 skillLevel 属性映射到令牌中的 extension_skillLevel 声明。
- 只是一般的修补
不幸的是,没有任何事情导致声明被映射到 B2C 令牌中。
内置的用户流程甚至有可能吗?还是我运气不好,需要使用自定义策略?如果可能的话,我缺少什么才能正确映射它?
提前致谢。
我的 Azure AD B2C 实例使用带有 OIDC 提供程序 (KeyCloak) 的自定义 IDP。在 KeyCloak 中,每个用户都有一个属性需要映射到 B2C 作为自定义声明。让我们将需要映射的声明称为“skillLevel”。该属性已添加到 KeyCloak 创建的令牌中,我可以验证该字段是否存在且是否正确。
注意:在配置 Custom IDP 表单(例如电子邮件)时,内置声明从 KeyCloak 正确映射到 Azure AD B2C 、名称和 ID。我 运行 遇到的问题是添加要映射到 B2C 的自定义用户属性。
在 Azure AD B2C 中,我创建了一个新的自定义用户属性并将其命名为“skillLevel”。在“User Flows”下,我 select 我的“Sign up and sign”政策和“Application claims " select编辑新创建的用户属性“skillLevel”并点击保存。
运行 用户流程和登录过程导致 id 令牌内没有声明。当 Identity Provider Access Token 声明被 selected 并通过用户流程然后解码现在在 id 令牌中传递的 KeyCloak 令牌时,我可以看到该字段技能等级.
我尝试过一些没有成功的事情:
- 正在更新应用程序清单以接受映射的声明并将该字段添加到 optionalClaims idToken 数组。
- 尝试下载用户流策略并将 PartnerClaimType 属性添加到 extension_skillLevel OutputClaim 并作为自定义策略重新上传。显然这是被禁止和不支持的。
- 更新 KeyCloak 范围以将 skillLevel 属性映射到令牌中的 extension_skillLevel 声明。
- 只是一般的修补
不幸的是,没有任何事情导致声明被映射到 B2C 令牌中。
内置的用户流程甚至有可能吗?还是我运气不好,需要使用自定义策略?如果可能的话,我缺少什么才能正确映射它?
提前致谢。