Keycloak Admin REST API:查询超过 100 个资源对象

Posted

技术标签:

【中文标题】Keycloak Admin REST API:查询超过 100 个资源对象【英文标题】:Keycloak Admin REST API: query more than 100 resource objects 【发布时间】:2021-09-11 15:06:19 【问题描述】:

我在 Keycloak 中有一个拥有 100 多个资源的客户。 我正在尝试通过以下方式使用 Keycloak Admin REST API 查询资源的 ID:

RESOURCE_ID=$(curl -k -s -H "Authorization: bearer $ACCESS_TOKEN" "$KEYCLOAK_URL/auth/admin/realms/$REALM/clients/$CLIENT_ID/authz/resource-server/resource" | jq -r '.[] | select(.name=="xy resource")._id')

不幸的是,“xy 资源”位于按字母顺序排列的列表的末尾,并且 curl 仅返回前 100 个资源对象。

有没有一种方法可以使用 Keycloak Admin REST API 查询超过 100 条记录或直接查询具有给定名称的记录?

我使用 Keycloak 12.0.4。

【问题讨论】:

【参考方案1】:

请查看 REST API 文档,有很多 Query 可选参数 'max'

最大结果大小(默认为 100)整数(int32)

https://www.keycloak.org/docs-api/7.0/rest-api/

【讨论】:

很好,它有效: RESOURCE_ID=$(curl -k -s -H "Authorization: bearer $ACCESS_TOKEN" "$KEYCLOAK_URL/auth/admin/realms/$REALM/clients/$CLIENT_ID/authz /resource-server/resource?max=500" | jq -r '.[] | select(.name=="xy resource")._id') @DonatoSzilagyi 我认为如果你做 max=-1 它会得到所有的,你不需要指定最大值

以上是关于Keycloak Admin REST API:查询超过 100 个资源对象的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法使用 Keycloak Admin REST API 将用户添加到 Keycloak 中的多个组(批量)?

使用 Keycloak 中的自定义 Admin REST API 获取用户的 ID 令牌

如何通过执行操作电子邮件通过 keycloak admin rest api 更新密码

使用 keycloak rest admin API (Oauth2) 修改用户姓氏后 jhipster 重新加载 OIDC 令牌

如何在不使用 rest admin api 的情况下以编程方式(java)更新 keycloak 的用户详细信息?

如何通过 REST API 将 Keycloak 领域角色添加到组