无效的请求,keycloak SAML登录后缺少参数的用户名

问题描述 投票:2回答:2

我以登录到一个角度应用程序中使用keycloak作为身份的经纪人到simplesamlphp身份提供者。

该keycloak正确地重定向到与登录面具身份提供者。登录后,身份提供商重定向像预期的那样keycloak。不幸的是我得到了以下错误消息(如JSON):

{ “错误”: “INVALID_REQUEST”, “ERROR_DESCRIPTION”: “缺少参数:用户名”}

我的IdP有一个用户,我keycloak没有,因为我不想额外存储用户keycloak做。

我的经纪人的配置是这样的:enter image description here

我的客户端配置是这样的:enter image description here

我熟悉既不SAML也不Keycloak,所以如果我需要提供任何其他信息,请告诉我。

angular single-sign-on saml keycloak simplesamlphp
2个回答
0
投票

好吧,我设法解决这个问题。这是如何做:

显然,现在KC总是专卖店验证本地用户。没有为没有导入选项功能请求,但它已被推迟。在这里看到:KEYCLOAK-4429

所以,基本上,你只是让KC创建一个本地用户和经纪帐户自动链接到新创建的用户。要做到这一点,您可以创建与这两个步骤的认证流程如下所示:Auth Flow不过请注意,即在自动链接执行只适用,因为KC 3.5,所以(基于KC 3.4)JBOSS SSO 7.2可能会不支持这个。

然后,您在您的身份提供配置,在第一次登录流量使用这个流程。

接下来的时间,通过外部的IdP登录时,KC将创建一个新用户,并将其链接到外部的IdP中使用的一个。所创建的用户将被与你的客户使用。

两两件事:

  • 你可以配置你的身份提供映射器从断言直接声称新创建的KC用户自动导入属性。然后,你可以配置你的客户端映射器沿作为附加的权利要求通过这些属性(在我的情况,我需要通过SAML归因获得UID)。
  • 你可以在你的领域中配置用户例如联合会通过增加一个LDAP连接,在这种情况下,KC不仅会创建一个默认的新用户,但会正确地进行自动导入,其中通过LDAP用户,然后用您的IDP用户联系起来。

© www.soinside.com 2019 - 2024. All rights reserved.