是否可以将密钥罩配置为将访问令牌/JWT存储为承载令牌,而不是Cookie? [英] Is it possible to configure Keycloak to store the access-token/JWT as a Bearer Token instead of as a Cookie?

查看:21
本文介绍了是否可以将密钥罩配置为将访问令牌/JWT存储为承载令牌,而不是Cookie?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对Keyloak的理解(可能是不正确的)是,一旦用户登录并通过身份验证,Access-Token/JWT就会以cookie的形式存储在浏览器中(默认名称为‘kc-access’)。

是否可以将密钥罩配置为将访问令牌直接存储为持有者令牌,而不是存储在Cookie中?

虽然我希望使用Keyshaak来保护Web应用程序,但我读到的大多数关于身份验证的资源通常都会讨论作为持有者令牌存储的访问令牌,而不是Cookie。

从密钥罩文档中,我看不到任何将访问令牌存储为Cookie或持有者令牌的选项-我是否误解了如何使用密钥罩为Web应用程序提供身份验证?

推荐答案

密钥罩用作单点登录(Sso)提供程序。因此,它被设计为与多个组件一起使用。它的设计目的是使用Cookie在用户浏览器上保持会话打开。这个会议是Keycloak的私人会议。然后,身份验证流向您的应用程序提供一个令牌,该令牌对用户进行身份验证。然后,您的应用程序通常会设置自己的Cookie来为用户建立会话,并避免让他们登录到每个页面。

当您使用Keycloak登录时,它会通过在浏览器中存储cookie来保持与浏览器的会话打开。此会话的长度和其他因素可在您的领域设置中配置。

当您使用Keycloak登录到另一个应用程序(如您的Web应用程序)时,您使用OpenID Connect(或SAML)作为协议来验证用户的身份,流程如下:

  1. 用户的浏览器将从您的应用程序重定向到Keycloak,
  2. 它检查用户是否已经有会话,如果他们还没有在keyshaak上登录,则要求他们登录(并创建会话)
  3. 使用短期代码将用户重定向回您的Web应用
  4. 您的应用程序连接到密钥罩以根据令牌交换代码。
  5. 您的应用程序读取令牌以标识用户,如果需要以使用OAuth2的用户身份访问第三方资源,则可能会存储该令牌。
  6. 您的应用程序创建会话Cookie以保持对用户的身份验证。
这些步骤中的大多数应该由库处理。Keycloak为Apache和Tomcat等流行的框架和服务器提供了许多OpenID适配器。

会话cookie可以是任何字符串,只要它们在浏览器和应用程序之间是唯一的和私有的。它们跨请求从浏览器识别用户。承载令牌通常用于身份验证或连接到无状态服务,如API。

您可以在这里找到有关OpenID协议的文档:https://openid.net/connect/faq/

这篇关于是否可以将密钥罩配置为将访问令牌/JWT存储为承载令牌,而不是Cookie?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆