Keycloak 问题和从 SAML 身份提供商注销

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

我对 Keycloak 的配置和 SAML 身份提供商的单点注销有问题。

场景:

  1. 用户尝试使用 Keycloak 的客户端(OID)登录服务提供商
  2. KC 重定向到 SAML 身份提供商
  3. 输入正确的凭据,用户登录,KC 创建会话,用户重定向回 SP 页面
  4. 在另一个选项卡中,用户直接登录 IP(由于 SSO,不需要凭据)
  5. 用户从 SP 注销
  6. 刷新第二个选项卡(IP)后,用户将注销。

但是,如果用户先从 IP 注销,SP 会话不会关闭,用户仍处于登录状态:

  1. 用户从IP注销(重定向到KC端点并返回IP登录页面)
  2. 刷新后,用户仍然登录SP

Keycloak正确接收samlp:LogoutRequest请求并返回

在 KC 管理控制台中,我仍然可以看到给定客户端(和用户)有活动会话。实际上,我只能在 KC stdout(请求转储器过滤器)中看到来自 IP 的 SAML 注销请求,但 KC 中没有发生注销事件。

我不太了解 SAML 的工作原理,但用户不应该使用 SLO 从 SP 注销吗?或者也许我在 KC 的客户端/领域/IP 配置中遗漏了某些内容? 谢谢您的帮助/解释

single-sign-on keycloak saml single-logout
2个回答
2
投票

全局注销工作的要求

  • 两个服务提供商使用的客户端应该位于同一领域。
  • 当您从 IdP 注销时,您是否看到每个服务提供商都发出注销请求?我相信在你的情况下,它不会调用你的 SP 的注销 URL。这需要在客户端级别进行配置。
  • 如果调用 SP 的注销 URL,并且即使您登录到 SP,则意味着 SP 在注销的实现中存在一些问题。

当您首先从 SP 注销时,在这种情况下,您的 SP 会向 IdP 发送注销请求,这就是您从 IdP 和 SP 注销的原因。 但在另一种情况下,我相信注销 URL 没有被调用(这可能是由于客户端中缺少配置)。

您可以发布配置截图以更好地帮助您吗?


0
投票

我遇到了同样的问题:当我注销一个应用程序时,身份提供商 (IdP) 也将我注销,而另一个应用程序仍保持登录状态。这是第一个应用程序还是第二个应用程序的配置问题?

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