gpt4 book ai didi

single-sign-on - idp 使用 keycloak 发起 sso

转载 作者:行者123 更新时间:2023-12-04 14:21:09 26 4
gpt4 key购买 nike

这个问题属于基于 SAML 的 IDP 发起的 SSO 领域。作为 POC,我有两个 keycloak 实例,比如 keycloak1 和 keycloak2。我想实现以下目标:

  • 身份验证将在 keycloak1
  • 上完成
  • keycloak1 然后指向 keycloak2 以访问 keycloak2 客户端应用程序。

  • 为此,

    a) 在realm1 下的keycloak1 创建一个saml 客户端。与 IdP initiated SSO Name设置为不带空格的名称)--> 说, keycloakclientsaml .在细粒度 SAML 端点配置部分,对于断言消费者服务 POST 绑定(bind) URL --> http://<keycloak2:port>/auth/realms/realm2/broker/saml/endpoint/clients/keycloakclientsaml
    ( https://www.keycloak.org/docs/latest/server_admin/index.html#idp-initiated-login )

    b) 单击上面创建的 saml 客户端 --> 安装 --> 导出 SAML 元数据 IDPSSODescriptor 并另存为 saml-metadata.xml(例如)。

    c) 在 keycloak1 中添加一个用户,比如 user1/user@123

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

    e) 在浏览器中点击, http://<keycloak1>/auth/realms/realm1/protocol/saml/clients/keycloakclientsaml提示输入用户名/密码,为 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

    有人可以在这里帮忙。
  • 以上给出的步骤是否正确和完整。
  • 我错过了什么

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

    最佳答案

    终于让它工作了。

    所以这里是上面的答案:

    上面粘贴的错误与断言过期有关。就我而言,这是因为 Keycloak1 的 saml 客户端中给出的 clientid 无法识别 keycloak2 的 url。它应该指向 keycloak2 领域(例如,http://<keycloak2:port>/realms/realm2然后 SAML 响应中的条件部分在 keycloak2 代理 idp 处验证。(code : SAMLEndpoint.java --> handleLoginResponse method)
    将这个线程留在这里,为清楚起见,下面详细给出了步骤:

    a) 在realm1 下的keycloak1 创建一个saml 客户端。与 IdP initiated SSO Name设置为不带空格的名称)--> 说,sso .

    b) 在上述客户端的细粒度 SAML 端点配置部分,对于断言消费者服务 (ASC) POST 绑定(bind) URL --> http://<keycloak2:port>/auth/realms/realm2/broker/saml/endpoint/clients/keycloak2samlclient
    ( https://www.keycloak.org/docs/latest/server_admin/index.html#idp-initiated-login )

    b) 单击上面创建的 saml 客户端 --> 安装 --> 导出 SAML 元数据 IDPSSODescriptor 并另存为 saml-metadata.xml(例如)。

    c) 在 keycloak1 中添加一个用户,比如 user1/user@123

    d) 在 keycloak2 上,创建一个 IDP(身份提供者选项卡,名称为 saml(引用 ASC url)。导入上面导出的 saml-metadata.xml 并保存。

    e) 在 keycloak2 上,创建一个 saml 客户端并在 IP 发起的 SSO url 中指定名称为 keycloak2clientsaml
    f) 在浏览器中点击,http://<keycloak1>/auth/realms/realm1/protocol/saml/clients/sso提示输入用户名/密码,为 user1 提供凭据

    关于single-sign-on - idp 使用 keycloak 发起 sso,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54785427/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com