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 个资源对象的主要内容,如果未能解决你的问题,请参考以下文章