吊销密钥罩访问令牌

人气:1,042 发布:2022-10-16 标签: node.js reactjs keycloak keycloak-rest-api keycloak-nodejs-connect

问题描述

我使用Keyloak来保护我的reaction前端和node.js后端。这些客户端使用基于角色的授权进行保护。

我的前端应用程序在Keyshaak中注册为公共客户端,后端注册为仅承载客户端。当用户登录到前端时,我将获取该特定用户的访问令牌,并使用该访问令牌来调用后端API层。

当用户从前端注销时,我将使用Keyshaak对象注销方法从Keyloak中清除该特定用户的前端客户端会话。现在工作正常,用户正在注销并重定向到Keyloak登录页面。

但问题是,我仍然可以使用该注销用户的访问令牌来调用后端API。即使用户注销,访问令牌仍有效。

我尝试使用此终结点来撤消用户访问令牌。但没有奏效 /auth/admin/realms//用户/

有没有办法在Keyloak中吊销特定用户的访问令牌?

推荐答案

我认为您只能吊销会话,但不能颁发访问令牌。因此,唯一的解决方案是选择非常短的访问令牌寿命,并结合静默刷新,这样可用性仍然很好,会话撤销后的最大访问时间等于或小于令牌寿命。

编辑:有official guide about how to handle compromised tokens。它们没有提到如何撤销单个访问令牌,因此没有记录的方法来执行此操作。但是,您可以通过所述的"NOT_BEFORE"方式撤销所有已颁发的访问密钥。

976