我正在尝试从keycloak访问特定组的组ID。我发现好像没有 REST API 调用可用于访问这个。您可以参考此处 http://www.keycloak.org/docs-api/3.0/rest-api/index.html#_groups_resource。这表明您只能使用其 ID 访问所有组详细信息或特定组详细信息。实际上,我实际需要的是我只想访问特定组的id。谁能告诉我怎么做?
你可以这样写:
GET http://localhost:your_port/auth/admin/realms/your_realm_name/groups?search=name_of_the_group
它将返回 {id, 名称, 路径, 子组} 给你。
我的邮递员示例
您使用的文档非常旧。查看最新版本的文档:
https://www.keycloak.org/docs-api/4.8/rest-api/#_groups_resource
您可以提供"搜索"参数以按名称查找组。
遗憾的是,如果使用子组的名称,它将返回从顶级组开始的整个层次结构,因此组的 API 仍然存在问题。
这可能来得有点晚,但无论如何。
还有一个GET /{realm}/group-by-path/{path}
端点,它将仅返回您想要的组,因为path
组是唯一的。
此外,如果有人需要(并且由于这实际上没有记录,或者至少在撰写此答案时没有(,如果您想从 admin-cli 调用此端点,您可以执行以下操作: ./kcadm.sh get group-by-path/{path} --realm {realm}
ex.: ./kcadm.sh get group-by-path/parent_group/child_group/grand_child_group --realm realm1
一种方法是进入钥匙斗篷管理面板。然后在"组"选项中,选择一个组。最后,您将在URL中找到组ID。像/realms/Applications/groups/bc49dc6c-7c2a-40c4-bf60-fea8c2b1d562
您可以获取所有组的列表:
GET /admin/realms/{realm}/groups
响应将具有包括 id 在内的组属性。
[
{
"id": "8ge163b3-6kc7-40ed-x069-3309eabbcbea",
"name": "group1",
"path": "/group1",
"subGroups": []
}
]