如何从Keycloak REST API获取用户?

时间:2019-04-05 12:30:21

标签: keycloak

嗨,我正在尝试使用Keycloak API,但我不太清楚它是如何工作的。我想获得一个领域的所有用户。因此,我首先使用以下端点:/realms/master/protocol/openid-connect/token获取令牌,并在请求正文中添加以下参数:

  • client_id
  • grant_type
  • 用户名
  • 密码
  • client_secret

第一个问题是:我应该使用哪个客户端?

然后我将此端点称为/admin/realms/master/users,在Authorization标头中带有令牌,但是我得到了403状态代码,我不明白为什么。

谢谢

2 个答案:

答案 0 :(得分:1)

403 =可能您无权查看用户。您需要为二手用户定义Client Roles并分配view-users角色:

enter image description here

答案 1 :(得分:0)

您需要两个步骤

  • 首先从主域的admin-cli客户端获取访问令牌

  • 第二次使用访问令牌调用admin rest api,将Bearer设置为前缀 授权标头。

# get an access token
curl -X POST \
  https://<HOST>/auth/realms/master/protocol/openid-connect/token \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'cache-control: no-cache' \
  -d 'grant_type=password&username=<USERNAME>l&password=<PASSWORD>&client_id=admin-cli'

# get all users of gateway realm, use the token from above and use Bearer as prefix
curl -X GET \
  https://<HOST>/auth/admin/realms/gateway/users \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkI...' \
  -H 'cache-control: no-cache'