如何阻止特定客户端的访问并在管理控制台中撤销他颁发的令牌
How to block access of specific client and revoke his issued tokens in admin console
我使用以下依赖项通过 spring 启动和 keycloak 实现了授权服务器:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson2-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-dependencies-server-all</artifactId>
<version>${keycloak.version}</version>
<type>pom</type>
</dependency>
我定义了一个客户端在 keycloak 管理控制台中有 client_credentials 授权流程。一切正常,客户可以得到他的 access_token 和 refresh_token.
现在,我希望能够撤销此客户颁发的令牌并阻止他获得新令牌。我如何以及在哪里可以在 keycloak 管理控制台中执行此操作?
Access Tokens
无法撤销(至少在 Keycloak 中)。它们被设计为短暂的,将它们的到期时间设置在 1 到 3 分钟之间是非常好的做法。
你唯一能做的就是:
- 驱逐特定用户
的所有会话
- 禁用/拒绝访问此特定用户(这样他就不会获得新令牌)
- 更改密钥 或重新生成特定客户端的秘密凭据(这样就无法进行身份验证,也不会颁发新令牌)
- 对所有令牌或disable/delete客户端或应用程序
使用not-before push策略
此处提供更多操作和详细信息:https://www.keycloak.org/docs/latest/server_admin/index.html#compromised-access-and-refresh-tokens
“令牌生命周期”和“撤销访问权限”主题在此处部分介绍:
我使用以下依赖项通过 spring 启动和 keycloak 实现了授权服务器:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson2-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-dependencies-server-all</artifactId>
<version>${keycloak.version}</version>
<type>pom</type>
</dependency>
我定义了一个客户端在 keycloak 管理控制台中有 client_credentials 授权流程。一切正常,客户可以得到他的 access_token 和 refresh_token.
现在,我希望能够撤销此客户颁发的令牌并阻止他获得新令牌。我如何以及在哪里可以在 keycloak 管理控制台中执行此操作?
Access Tokens
无法撤销(至少在 Keycloak 中)。它们被设计为短暂的,将它们的到期时间设置在 1 到 3 分钟之间是非常好的做法。
你唯一能做的就是:
- 驱逐特定用户 的所有会话
- 禁用/拒绝访问此特定用户(这样他就不会获得新令牌)
- 更改密钥 或重新生成特定客户端的秘密凭据(这样就无法进行身份验证,也不会颁发新令牌)
- 对所有令牌或disable/delete客户端或应用程序 使用not-before push策略
此处提供更多操作和详细信息:https://www.keycloak.org/docs/latest/server_admin/index.html#compromised-access-and-refresh-tokens
“令牌生命周期”和“撤销访问权限”主题在此处部分介绍: