Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 请求无效,在KeyClope saml登录后缺少参数用户名_Angular_Single Sign On_Saml_Keycloak_Simplesamlphp - Fatal编程技术网

Angular 请求无效,在KeyClope saml登录后缺少参数用户名

Angular 请求无效,在KeyClope saml登录后缺少参数用户名,angular,single-sign-on,saml,keycloak,simplesamlphp,Angular,Single Sign On,Saml,Keycloak,Simplesamlphp,为了登录到一个angular应用程序,我正在使用KeyClope作为simplesamlphp身份提供者的身份代理 密钥斗篷使用登录掩码正确重定向到身份提供程序。登录后,身份提供程序将按预期重定向到KeyClope。不幸的是,我收到以下错误消息(作为JSON): 我的IdP有一个用户,而我的Key斗篷没有,因为我不想在Key斗篷中另外存储用户 我的代理配置如下所示: 我的客户端配置如下: 我既不熟悉SAML也不熟悉Key斗篷,所以如果我需要提供任何其他信息,请告诉我 好的,我设法解决了这个问

为了登录到一个angular应用程序,我正在使用KeyClope作为simplesamlphp身份提供者的身份代理

密钥斗篷使用登录掩码正确重定向到身份提供程序。登录后,身份提供程序将按预期重定向到KeyClope。不幸的是,我收到以下错误消息(作为JSON):

我的IdP有一个用户,而我的Key斗篷没有,因为我不想在Key斗篷中另外存储用户

我的代理配置如下所示:

我的客户端配置如下:


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

好的,我设法解决了这个问题。以下是方法:

显然,目前KC总是在本地存储经过身份验证的用户。有一个针对无导入选项的功能请求,但已被推迟。请看这里:

因此,基本上,您只需让KC创建一个本地用户,并将代理帐户自动链接到新创建的用户。为此,您可以使用以下两个步骤创建一个身份验证流,如下所示:但是请注意,autolink执行仅在KC 3.5之后才可用,因此JBOSS SSO 7.2(基于KC 3.4)可能不支持此操作

然后,在身份提供程序配置中使用此流作为第一个登录流

下次,当通过外部IdP登录时,KC将创建一个新用户,并将其链接到外部IdP中使用的用户。然后,创建的用户将与您的客户端一起使用

还有两件事:

  • 您可以使用标识提供程序配置映射器,以便将断言声明中的属性直接自动导入到新创建的KC用户。然后,您可以通过客户端配置映射器,将这些属性作为附加声明传递(在我的例子中,我需要通过SAML获得一个UID属性)
  • 您可以在您的领域中配置用户联合,例如通过添加LDAP连接,在这种情况下,KC不仅会创建默认的新用户,而且会通过LDAP正确地自动导入所述用户,然后将其与您的IdP用户链接
{"error":"invalid_request","error_description":"Missing parameter: username"}