自定义策略中的 ClaimsTransformation 错误

Posted

技术标签:

【中文标题】自定义策略中的 ClaimsTransformation 错误【英文标题】:ClaimsTransformation error in custom policy 【发布时间】:2022-01-09 04:42:29 【问题描述】:

在 Azure B2C 上,我创建了一个自定义策略来使用 SAML 协议连接 Spring 应用程序。 此应用程序使用 SAML 连接到 B2C,然后 B2C 使用 KeyCloak 上的外部 IDP 来执行身份验证。

我关注 this documentation 在 KeyCloak 上设置我的客户端。

当我通过 Chrome 控制台在我的 spring 应用程序中登录时,每个网络调用似乎都很好,但是最后一个 SAML 断言我得到了这个错误

响应的状态码无效 urn:oasis:names:tc:SAML:2.0:status:Responder,状态消息为 Id:3e00c8b4-d645-44f9-a3ab-fd3400bee95c ;消息:未找到 ID 为“issuerUserId”的声明,这是租户“mytenant.onmicrosoft.com”的策略“B2C_1A_signup_signin_saml”中 ID 为“CreateAlternativeSecurityId”的 ClaimsTransformation“CreateAlternativeSecurityId”所要求的。

我认为问题在

<OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>

但我不知道如何解决。有什么建议吗?

【问题讨论】:

【参考方案1】:

问题在于 SAML 到 B2C 声明的映射。

请参考this。

没有任何东西被映射到“issuerUserId”,或者如果有映射,它正在映射 SAML 端不存在的东西。

【讨论】:

以上是关于自定义策略中的 ClaimsTransformation 错误的主要内容,如果未能解决你的问题,请参考以下文章

Azure AD B2C - 自定义策略中的“电子邮件”声明

`convertFromSnakeCase` 策略不适用于 Swift 中的自定义 `CodingKeys`

如何注销使用自定义设计策略登录的用户

IAM 策略条件中的 cognito 用户池自定义属性与 Dynamodb 细粒度访问

H2 内存数据库和自定义 @GenericGenerator 策略

钥匙斗篷 |如何添加自定义 keycloak 密码策略?