查询用户 API
编辑查询用户 API编辑
先决条件编辑
- 要使用此 API,您至少需要具有
read_security
集群权限。
请求正文编辑
您可以在请求正文中指定以下参数
查询参数编辑
-
with_profile_uid
- (可选,布尔值) 确定是否检索用户的 用户配置文件
uid
(如果存在)。默认为false
。 -
from
-
(可选,整数) 起始文档偏移量。必须是非负数,默认为
0
。默认情况下,您无法使用
from
和size
参数浏览超过 10,000 个命中项。要浏览更多命中项,请使用search_after
参数。 -
size
-
(可选,整数) 要返回的命中项数。必须是非负数,默认为
10
。默认情况下,您无法使用
from
和size
参数浏览超过 10,000 个命中项。要浏览更多命中项,请使用search_after
参数。 -
sort
- (可选,对象) 排序定义。您可以按
username
、roles
或enabled
排序。此外,排序也可以应用于_doc
字段以按索引顺序排序。 -
search_after
- (可选,数组) 搜索后 定义。
示例编辑
以下请求列出所有用户,假设您具有 read_security
权限
GET /_security/_query/user
成功调用将返回一个 JSON 结构,其中包含从一个或多个用户检索到的信息
{ "total": 2, "count": 2, "users": [ { "username": "jacknich", "roles": [ "admin", "other_role1" ], "full_name": "Jack Nicholson", "email": "[email protected]", "metadata": { "intelligence": 7 }, "enabled": true }, { "username": "sandrakn", "roles": [ "admin", "other_role1" ], "full_name": "Sandra Knight", "email": "[email protected]", "metadata": { "intelligence": 7 }, "enabled": true } ] }
如果您使用以下详细信息创建用户
POST /_security/user/jacknich { "password" : "l0ng-r4nd0m-p@ssw0rd", "roles" : [ "admin", "other_role1" ], "full_name" : "Jack Nicholson", "email" : "[email protected]", "metadata" : { "intelligence" : 7 } }
成功调用将返回一个 JSON 结构
{ "created": true }
使用用户信息检索具有查询的用户
GET /_security/_query/user { "query": { "prefix": { "roles": "other" } } }
成功调用将返回用户的 JSON 结构
{ "total": 1, "count": 1, "users": [ { "username": "jacknich", "roles": [ "admin", "other_role1" ], "full_name": "Jack Nicholson", "email": "[email protected]", "metadata": { "intelligence": 7 }, "enabled": true } ] }
要检索用户 profile_uid
作为响应的一部分
GET /_security/_query/user?with_profile_uid=true { "query": { "prefix": { "roles": "other" } } }
{ "total": 1, "count": 1, "users": [ { "username": "jacknich", "roles": [ "admin", "other_role1" ], "full_name": "Jack Nicholson", "email": "[email protected]", "metadata": { "intelligence": 7 }, "enabled": true, "profile_uid": "u_79HkWkwmnBH5gqFKwoxggWPjEBOur1zLPXQPEl1VBW0_0" } ] }
使用 bool
查询来发出复杂的逻辑条件,并使用 from
、size
、sort
来帮助对结果进行分页
GET /_security/_query/user { "query": { "bool": { "must": [ { "wildcard": { "email": "*example.com" } }, { "term": { "enabled": true } } ], "filter": [ { "wildcard": { "roles": "*other*" } } ] } }, "from": 1, "size": 2, "sort": [ { "username": { "order": "desc"} } ] }
电子邮件必须以 |
|
用户必须已启用 |
|
结果将被过滤,仅包含至少包含子字符串 |
|
开始搜索结果的偏移量是第二个(从零开始的索引)用户 |
|
响应的页面大小为 2 个用户 |
|
结果按 |
响应包含匹配用户的列表及其排序值
{ "total": 5, "count": 2, "users": [ { "username": "ray", "roles": [ "other_role3" ], "full_name": "Ray Nicholson", "email": "[email protected]", "metadata": { "intelligence": 7 }, "enabled": true, "_sort": [ "ray" ] }, { "username": "lorraine", "roles": [ "other_role3" ], "full_name": "Lorraine Nicholson", "email": "[email protected]", "metadata": { "intelligence": 7 }, "enabled": true, "_sort": [ "lorraine" ] } ] }