raa*_*ana 5 http-post keycloak-services
我是keycloak 的新手,任何帮助都是可观的。我可以使用 keycloak api 获取用户详细信息列表,我想知道如何使用 http-post 获取它。
Keycloak kc = Keycloak.getInstance("url-path", "realm", "username", "password", "admin-cli");
Run Code Online (Sandbox Code Playgroud)
通过使用这个 keycloak 对象,我可以获得用户列表。但是,当我想通过使用 keycloak 提供的端点 url 使用 http-post 或 rest api 调用获取用户列表时,我无法根据令牌获取访问令牌,我只获取特定用户,我想要使用rest api的用户列表。
根据官方 Keycloak Admin REST API 文档(向下滚动一点到“获取用户返回用户列表,根据查询参数进行过滤”部分),您会发现有 2 个可用的查询参数:first和max。
如果您设置first为 10 和max15,那么前 10 个用户将被跳过,您将收到接下来的 15 个用户(即用户 11 到 25)的响应。
使用以下请求:
GET https://$KEYCLOAK_HOST/auth/admin/$REALM/users?first=10&max=15
Run Code Online (Sandbox Code Playgroud)
PS - 不要忘记授权标头。
以下是通过 key-cloak rest-api 首先创建 url 来实现此目的的步骤
String fetchAllUsers = URL+"/admin/realms/"+realmName+"/users?";
Run Code Online (Sandbox Code Playgroud)
现在,如果您有数百万用户,您不想一次性获取所有用户,因此 keycloak 支持带有分页的rest-api,在您的其余帖子查询中,您可以询问
tenantName, queryString, Limit,PageNumber
fetchAllUsers(String tenantName, List<String> queryString, String limit, String pageNumber)
Run Code Online (Sandbox Code Playgroud)
现在这些东西将有助于创建一个查询,该查询将仅发送那么多记录,这不会影响 keycloak 以及 web-api 的性能。
用户queryString可以传递过滤条件,例如他是否想按姓名、姓氏、电子邮件 ID 进行搜索,或者用户想要按升序或降序排列结果。您必须解析并创建一个查询字符串,以便它类似于其余查询钥匙斗篷。完成此操作后,您可以将查询字符串与 fetchAllUsers.
你的查询将是这样的
https://<IP ADDRESS>/<PORT>/admin/realms/<REALM NAME>/users?q=username=<USER NAME>ASC&email=<EMAIL ID>&limit=<RECORD LIMIT>&page=<PAGE NO>
Run Code Online (Sandbox Code Playgroud)
如果您发现任何内容,请忽略拼写错误。
| 归档时间: |
|
| 查看次数: |
12252 次 |
| 最近记录: |