文章目录
开源身份和访问管理方案之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 的用户。
- 获取在 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 分钟后过期
-
通过提取 access_token 属性的值来调用所需的 API。
-
通过在对 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>
亲测可用~!