当前位置: 首页 > 知识库问答 >
问题:

密钥斗篷令牌是否有任何部分可以用作令牌本身的唯一ID?

袁良弼
2023-03-14

基于KeyCloak令牌,我从数据库中获取用户的一些附加信息(sub字段)。我想缓存这些信息,我正在寻找缓存的适当密钥。

我不想使用sub字段,因为我希望当keydape令牌更改时(即为同一用户生成新令牌时),缓存条目无效。

我可以很容易地使用整个KeyCloak令牌或其第三部分(签名)作为密钥。不过,是相当长的一串。

KeyCloak令牌中是否有任何字段可用作此特定令牌的唯一ID?其被保证总是存在,并且总是为令牌的新实例而改变。

sid字段是否这样工作?至少它似乎不同于sub

keydove令牌中有几个uuid,我对文档感到困惑。我发现只有这张清晰排列的表解释了keydove令牌字段的含义。

共有1个答案

金珂
2023-03-14

根据您的用例,我可以考虑使用的两个字段是id/email id和expiration。

>

  • Id/电子邮件Id是唯一且始终存在的,因此符合您的目的。

    不能单独使用过期时间,因为同时为两个用户生成的两个令牌可能具有相同的过期时间。那我为什么要求使用?如果缓存不支持TTL,则可能会有过时的条目不必要地占用缓存。因此,如果您将密钥保持为“expiration.id”,那么您可以每24小时左右运行一次辅助作业,根据第一部分(即过期)从缓存中删除过时的条目。

    下面是我的Java应用程序中的keydaveat令牌对象示例:

  •  类似资料:
    • 使用KeyCloak时,访问令牌与用户信息令牌有何不同? 从OAuth2/OpenIDConnect中,我了解到访问令牌提供了用户已经通过身份验证的信息,您需要使用用户信息令牌来获取关于用户及其配置文件/角色等的更多信息。 当我看到访问令牌时https://jwt.io/而不是用户信息令牌。我能够获得与用户配置文件相同的信息 为什么会这样,使用Keycloak时访问令牌与用户信息令牌有何不同?

    • 谁知道如何使用获取id_令牌? 我一直在(Spring,JEE)和postman中与合作。 基本的工作正常,但我需要,因为有一些声明,它们不存在于中,但它们存在于中。 使用库,我可以获得Keycloak上下文,但id_token属性始终为null。 有什么主意吗?

    • 我们有一个角度水疗中心,是由OIDC授权使用隐式流。我们使用Keycloak作为我们的授权服务器。访问令牌的寿命很短,并且通过隐藏的iframe定期刷新。 在了解到授权代码流PKCE是授权SPA的新推荐方式后,我们决定切换流。一切正常,但每次我们调用令牌endpoint时,KeyCloak确实会给我们一个刷新令牌(以及Access和ID-Token)。由于没有安全的方法来存储刷新令牌,我们想继续使

    • 不知何故,我迷失了Spring Security和Keycloak。 在一个应用程序中,我成功地从KeyClope实例接收了一个访问令牌。然后,我使用这个令牌请求我的Spring Security服务器(它使用相同的KeyClope实例)。 但我得到的只是403个错误。 以下是代码摘录(用kotlin编写): 安全配置: 在我的控制器中: 在我对服务器的调用中,我可以验证授权头的设置如下:auth

    • 我正在尝试在API网关(Apache APISIX)后面使用KeyClope。 我使用minikube来运行KeyClope和API网关。 网关正常工作,KeyClope也正常工作: 使用KeyClope,我可以使用不同的endpoint(使用发现endpoint(http://127.0.0.1:7070/auth/realms/myrealm/.well-已知/uma2配置),询问访问令牌并进

    • 我有一个angular应用程序作为前端,spring boot作为后端技术,作为授权服务器,我使用的是KeyClope 12.0.4。 我不想在angular和Spring Boot中使用KeyClope适配器,我想使用普通的oauth2 oauth/token,这样我就可以在不需要太多更改代码的情况下将我的授权服务器从KeyClope更改为okta。 我可以使用postman直接点击KeyClo