第 2 章 admin REST API
Red Hat Single Sign-On 附带了功能齐全的 Admin REST API,具有管理控制台提供的所有功能。
若要调用 API,您需要获取具有适当权限的访问令牌。服务器管理指南中介绍了所需的权限。
您可以使用 Red Hat Single Sign-On 为应用程序启用身份验证来获取令牌,请参阅保护应用程序和服务指南。您还可以使用直接访问权限授权来获取访问令牌。
2.1. 使用 CURL 的示例 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
2.1.1. 使用用户名和密码进行身份验证 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
流程
使用用户名
admin
和密码
,为 realmmaster
中的用户获取访问令牌:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意默认情况下,此令牌在 1 分钟后过期
结果将是一个 JSON 文档。
-
通过提取
access_token
属性的值来调用所需的 API。 通过在 API 请求的
Authorization
标头中包含值来调用 API。以下示例演示了如何获取 master 域的详情:
curl \ -H "Authorization: bearer eyJhbGciOiJSUz..." \ "http://localhost:8080/auth/admin/realms/master"
curl \ -H "Authorization: bearer eyJhbGciOiJSUz..." \ "http://localhost:8080/auth/admin/realms/master"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.1.2. 使用服务帐户进行身份验证 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
要使用 client_id
和 client_secret
对 Admin REST API 进行身份验证,请执行此流程。
流程
确保配置了客户端,如下所示:
-
client_id
是 属于域 master的机密客户端 -
client_id
启用了Service Accounts Enabled
选项 client_id
有自定义"Audience"映射程序-
包含的客户端 Audience:
security-admin-console
-
包含的客户端 Audience:
-
-
检查
client_id
在 "Service Account Roles" 选项卡中分配了角色 'admin'。
curl \ -d "client_id=<YOUR_CLIENT_ID>" \ -d "client_secret=<YOUR_CLIENT_SECRET>" \ -d "grant_type=client_credentials" \ "http://localhost:8080/auth/realms/master/protocol/openid-connect/token"
curl \
-d "client_id=<YOUR_CLIENT_ID>" \
-d "client_secret=<YOUR_CLIENT_SECRET>" \
-d "grant_type=client_credentials" \
"http://localhost:8080/auth/realms/master/protocol/openid-connect/token"