钥匙斗篷登录页面
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 获取其他用户信息(用户名、名字)? [钥匙斗篷]