钥匙斗篷登录页面

Posted

技术标签:

【中文标题】钥匙斗篷登录页面【英文标题】:Keycloak login page 【发布时间】:2019-08-02 12:22:47 【问题描述】:

我想将 SSO 从我的应用程序启动到云端 元素页面。要执行 SSO,我正在使用 Keycoak。当用户登录我的应用程序并想要转到 CloudElements 页面时,用户将被重定向到 keycloak 登录页面。但我想避免使用 keycloak 登录页面。

我点击了“Avoid keycloak default login page and use project login page”链接,得到了keycloak的回复,如下所示。

现在我的问题是... 用户现在被授权了吗? 因为用户仍然被重定向到 keycloak 登录页面。请帮忙...

【问题讨论】:

你试过浏览器吗?我不确定,但我认为您将能够通过邮递员测试重定向。 我在浏览器上试过了,我得到了相同的响应。但是它仍然重定向了 tp keycloak 登录页面。这就是为什么我有疑问,用户是否被授权不是.. 【参考方案1】:

要登录 keycloak 用户必须通过“登录页面”(参见 OIDC 规范)。只有当相应的用户在 keycloak 内建立 SSO 用户会话时,Keycloak 才能发出令牌对响应。将 JWT 令牌中的 session_state 字段视为 Keycloak 中 SSO 会话的标识符。所以让我们总结一下:

    受 Keycloak 保护的应用程序需要 AccessToken 来处理请求。 只有在 Keycloak 为用户建立内部 SSO 会话时才能获取令牌(用户指帐户记录) 当用户通过登录页面登录 Keycloak 时,可以存档第 2 步。

但是!!! 还有一个 direct grant 流程,允许目标应用程序在 keycloak 中对用户进行身份验证,而无需重定向到 Keycloak 登录页面。在这种情况下,用户直接向应用程序提供所需的凭据,应用程序将此凭据交换为 Keycloak 中的令牌对(这也将在 Keycloak 后台建立 SSO 会话)。

如果您想使用direct_grant 流,您应该信任目标应用程序并确信用户凭据不会泄露。

【讨论】:

以上是关于钥匙斗篷登录页面的主要内容,如果未能解决你的问题,请参考以下文章

钥匙斗篷。如何更改管理控制台域?

如何通过 id 获取其他用户信息(用户名、名字)? [钥匙斗篷]

钥匙斗篷 |如何添加自定义 keycloak 密码策略?

钥匙斗篷 |使用 Spring Security 的 OIDC 反向通道(单)注销

如何使用钥匙串验证用户名和密码

想使用登录钥匙串卡死