开源身份和访问管理方案之keycloak(四)Admin REST API(server_admin)

开源身份和访问管理方案之keycloak(四)Admin REST API

什么是Admin REST API

官方文档:https://www.keycloak.org/docs/latest/server_development/index.html#admin-rest-api
https://www.keycloak.org/docs/26.1.3/server_admin

Keycloak 附带一个功能齐全的管理员 REST API,具有管理员控制台提供的所有功能。

要调用 API,您需要获取具有相应权限的访问令牌。所需的权限在 Server Administration Guide服务器管理指南 中进行了描述。

核心概念和术语

service account服务帐号

service account服务帐号
Each client has a built-in service account which allows it to obtain an access token.
每个客户端都具有内置的服务帐号,允许它获取访问令牌。

使用

下面的示例假设您已按照 入门指南 教程中所示,在 master 领域中创建了用户名为 admin、密码为 password 的用户。

  1. 获取在 master 领域中用户名为 admin、密码为 password 的用户的访问令牌:
curl \
  -d "client_id=admin-cli" \
  -d "username=admin" \
  -d "password=password" \
  -d "grant_type=password" \
  "http://localhost:8080/realms/master/protocol/openid-connect/token"

By default this token expires in 1 minute
默认情况下,此令牌在 1 分钟后过期

  1. 通过提取 access_token 属性的值来调用所需的 API。

  2. 通过在对 API 的请求的 Authorization 标头中包含该值来调用 API。
    例如: 获取主领域的详细信息

curl \
  -H "Authorization: bearer eyJhbGciOiJSUz..." \
  "http://localhost:8080/admin/realms/master"

常用Admin REST API

官方文档:https://www.keycloak.org/docs/26.1.3/server_admin

清除用户缓存

Java 集成 keycloak-admin-client 清空用户缓存
参考URL: https://blog.csdn.net/bubaiyi/article/details/107196852
KEYCLOAK - Flushing and clear Realm and User Caches via Admin REST API
参考URL: https://n-k.de/2024/02/keycloak-flush-and-clear-caches.html

需求背景:
Keycloak大量使用缓存,包括分布式缓存和本地缓存。 本地缓存存储领域、客户端和用户相关数据。 通常,您无需关心缓存失效和刷新状态,Keycloak本身会管理这些。 但有时可能需要手动清除和刷新缓存,以便您的Keycloak节点从数据库读取最新数据。

同时跟踪sdk路径,
Clear Realm Cache
清除领域缓存

POST http://localhost:8080/admin/realms/master/clear-realm-cache
Authorization: Bearer <access_token>

Clear User Cache
清除用户缓存

POST http://localhost:8080/admin/realms/master/clear-user-cache
Authorization: Bearer <access_token>

Clear Keys Cache
清除密钥缓存

POST http://localhost:8080/admin/realms/master/clear-keys-cache
Authorization: Bearer <access_token>

亲测可用~!

猜你喜欢

转载自blog.csdn.net/inthat/article/details/146166770
今日推荐