如何使用 keycloak 强制每个客户端登录(最佳实践?)

use*_*670 2 authentication logging single-sign-on keycloak

我们目前正在实施 keycloak,但我们面临一个问题,我们不确定解决该问题的最佳方法是什么\xe2\x80\x99。

\n\n

我们有不同的网络应用程序使用 sso,并且 \xe2\x80\x99s 工作正常。我们遇到的问题是,当我们在一个 Web 应用程序中使用 sso 登录,然后在另一个 Web 应用程序中执行相同的操作时。

\n\n

最初,第二个 Web 应用程序不知道哪个用户即将到来(并且不需要登录即可使用它\xe2\x80\x99)。当单击 \xe2\x80\x9clogin\xe2\x80\x9d 时,它会自动登录用户(通过重定向到 keycloak 并自动在其他 Web 应用程序中记录已登录的用户)。第二次日志记录对用户来说是透明的,因为重定向到 keycloak 的速度非常快并且不明显。这种行为对用户来说不太友好。

\n\n

问题是:考虑到第二个 web 应用程序可以\xe2\x80\x99t 预先知道哪个用户正在访问该站点(除非主动重定向到 keycloak),是否可以强制用户始终登录特定的 keycloak 客户端?我的意思是实际上向访问者询问用户/密码,即使 keycloak 已经从其他 keycloak 客户端知道了它们。

\n\n

提前致谢!

\n

use*_*670 8

在 keycloak 的邮件列表中,他们给了我一个很好的解决方案,但对于版本 4:

  1. 在管理控制台中,转到身份验证
  2. 复制浏览器流
  3. 在此新流程中,禁用或删除 Cookie
  4. 转到“客户端”->(您的客户端)->“身份验证流覆盖”,将浏览器流更改为新流,然后单击“保存”。