通过跳过登录页面来登录Keycloak

时间:2020-10-28 01:02:07

标签: keycloak openconnect

我有2种不同的应用程序:比如Application1和Application2。

我已经将Application2与keycloak集成在一起,并且能够使用Keycloak的登录页面登录到此应用程序。

现在我想要的是,如果我登录到Application1(没有keycloak),我应该能够调用keycloak的一些API来登录到application2(没有呈现keycloak的登录页面)。

可行吗?如果是,怎么办?

我们将不胜感激任何帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

TLDR;不,不可能。

您可以登录Keycloak并通过API获得用户的访问令牌,但是只能用于代表用户在Application2上调用API。因此,如果您不显示Application2 UI,并且用户将在Application1中看到Application2 API调用的结果,这将很有用。

原因是Keycloak与其他SSO解决方案一样,使用cookie来跟踪SSO会话。因此,如果您的用户登录到Application2,则他/她的浏览器上将具有Keycloak SSO cookie。因此,当用户由于没有会话而第一次访问Application1(并且Application1与Keycloak集成)时,他/她将被重定向到Keycloak登录页面,Keycloak将注意到SSO cookie存在并且有效,因此将用户视为已登录用户,并且不会呈现任何登录UI,而只是将其重定向回Application1。

您无法通过API访问该Keycloak cookie,即使可以,也无法在用户浏览器中为Keycloak域设置它。