TLDR;不,这是不可能的。
您可以通过 API 登录 Keycloak 并为用户获取访问令牌,但它只能用于代表用户调用 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 域设置它。