如何通过Keycloak Admin API进行身份认证?
Keycloak Admin API 认证方式说明
Keycloak Admin API 不支持直接用Basic认证访问,正确的方式是先获取管理员访问令牌(Admin Access Token),再用这个令牌作为Bearer Token请求API。
步骤1:获取管理员令牌
通过Keycloak的令牌端点/realms/{realm-name}/protocol/openid-connect/token发送POST请求,参数要求如下:
- 请求格式:
application/x-www-form-urlencoded - 必填参数:
grant_type: 固定为passwordclient_id: 使用Keycloak默认的管理员CLI客户端admin-cliusername: 你的Keycloak管理员用户名password: 你的Keycloak管理员密码
示例curl命令:
curl -X POST \ http://your-keycloak-domain:8080/realms/master/protocol/openid-connect/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=password&client_id=admin-cli&username=admin&password=your-admin-password"
返回结果中的access_token字段就是后续调用API需要的管理员令牌。
步骤2:使用令牌访问Admin API
调用Admin API时,在请求头中添加Authorization: Bearer {access_token}即可完成身份认证。
示例curl命令(获取所有领域列表):
curl -X GET \ http://your-keycloak-domain:8080/admin/realms \ -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6IC..."
补充说明
- 若Keycloak开启了HTTPS,请求地址需替换为
https开头 - 管理员令牌存在过期时间,过期后需重新获取
- 服务端场景下也可使用
client_credentials模式获取令牌,需提前为admin-cli客户端配置服务账号权限
内容的提问来源于stack exchange,提问作者Dinu Nicolae
相关产品推荐
相关产品推荐

