首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >idp使用keycloak启动sso

idp使用keycloak启动sso
EN

Stack Overflow用户
提问于 2019-02-20 11:36:45
回答 1查看 7.2K关注 0票数 5

这个问题是在基于SAML的IDP发起的SSO领域。作为一个POC,我有两个keycloak实例,比如keycloak1和keycloak2。我希望做到以下几点:

  1. 身份验证将在keycloak1完成
  2. 然后keycloak1指向keycloak2来访问keycloak2客户端应用程序。

为了这样做,

( a)在keycloak1下realm1下创建saml客户端。将IdP initiated SSO Name设置为没有空格的名称)-例如,keycloakclientsaml。在细粒度SAML端点配置部分中,用于断言消费者服务POST绑定URL --> http://<keycloak2:port>/auth/realms/realm2/broker/saml/endpoint/clients/keycloakclientsaml

( admin/index.html#idp-initiated-login)

( b)单击上面创建的saml > installation -> Export元数据IDPSSODescriptor并将其保存为saml-metadata.xml (例如)。

( c)在keycloak1中添加一个用户,例如user 1/user@123

( d)在keycloak2,创建一个IDP (标识提供者选项卡)。导入上述导出的saml-metadata.xml并保存。

( e)在浏览器点击中,http://<keycloak1>/auth/realms/realm1/protocol/saml/clients/keycloakclientsaml提示用户名/pwd,给出user1的凭据

( f)浏览器中的URL现在更改为

http://<keycloak2:port>/auth/realms/realm2/broker/saml/endpoint/clients/keycloakclientsaml

在keycloak2实例中,我得到的错误如下:

09:20:46,775 INFO [org.keycloak.saml.validators.ConditionsValidator] (default task-6) Assertion ID_789213dd-24f9-425f-ae20-bcadef173bc6 is not addressed to this SP. 09:20:46,775 ERROR [org.keycloak.broker.saml.SAMLEndpoint] (default task-6) Assertion expired. 09:20:46,775 WARN [org.keycloak.events] (default task-6) type=IDENTITY_PROVIDER_RESPONSE_ERROR, realmId=realm2, clientId=null, userId=null, ipAddress=keycloak2, error=invalid_saml_response

有人能帮忙吗。

  1. 上述步骤是否正确和完整。
  2. 我错过了什么

如果需要任何其他信息,请告诉我。很乐意提供。

EN

回答 1

Stack Overflow用户

发布于 2019-03-07 17:53:02

终于起作用了。

因此,以下是上述问题的答案:

上面粘贴的错误与断言过期有关。在我的例子中,这是因为在Keycloak1的saml客户机中给出的客户端没有被keycloak2的url所识别。它应该指向keycloak2领域(例如,http://<keycloak2:port>/realms/realm2,然后在keycloak2 broker中验证keycloak2响应中的条件部分)。(code : SAMLEndpoint.java --> handleLoginResponse method)

为了清晰起见,下面给出了下面的详细步骤:

( a)在keycloak1下realm1下创建saml客户端。将IdP initiated SSO Name设置为没有空格的名称)-例如,sso

( b)在上述客户端的细粒度SAML端点配置部分,用于断言消费者服务(ASC) POST绑定URL -> http://<keycloak2:port>/auth/realms/realm2/broker/saml/endpoint/clients/keycloak2samlclient

( admin/index.html#idp-initiated-login)

( b)单击上面创建的saml > installation -> Export元数据IDPSSODescriptor并将其保存为saml-metadata.xml (例如)。

( c)在keycloak1中添加一个用户,例如user 1/user@123

( d)在keycloak2上,创建一个IDP (带有名称saml的identity providers选项卡)(参见ASC url)。导入上述导出的saml-metadata.xml并保存。

( e)在keycloak2中,创建一个saml客户端,并在IP启动的SSO中将名称命名为keycloak2clientsaml

( f)在浏览器点击中,http://<keycloak1>/auth/realms/realm1/protocol/saml/clients/sso提示用户名/pwd,给出user1的凭据

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54785427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档