拥有权限 API
编辑拥有权限 API
编辑先决条件
编辑- 所有用户都可以使用此 API,但仅限于确定其自身的权限。要检查其他用户的权限,必须使用“以…身份运行”功能。有关更多信息,请参阅代表其他用户提交请求。
请求体
编辑-
集群
- (列表) 要检查的集群权限列表。
-
索引
-
-
名称
- (列表) 索引列表。
-
允许受限索引
- (布尔值) 如果使用通配符或正则表达式来匹配覆盖受限索引的模式,则需要将其设置为
true
(默认值为false
)。隐式地,受限索引与索引模式不匹配,因为受限索引通常具有有限的权限,并且在模式测试中包含它们会使大多数此类测试变为false
。如果在names
列表中明确包含受限索引,则无论allow_restricted_indices
的值如何,都将针对它们检查权限。 -
权限
- (列表) 要为指定的索引检查的权限列表。
-
-
应用程序
-
-
应用程序
- (字符串) 应用程序的名称。
-
权限
- (列表) 要为指定的资源检查的权限列表。可以是应用程序权限名称,也可以是这些权限授予的操作的名称。
-
资源
- (列表) 应针对其检查权限的资源名称列表。
-
示例
编辑以下示例检查当前用户是否具有特定的一组集群、索引和应用程序权限。
resp = client.security.has_privileges( cluster=[ "monitor", "manage" ], index=[ { "names": [ "suppliers", "products" ], "privileges": [ "read" ] }, { "names": [ "inventory" ], "privileges": [ "read", "write" ] } ], application=[ { "application": "inventory_manager", "privileges": [ "read", "data:write/inventory" ], "resources": [ "product/1852563" ] } ], ) print(resp)
const response = await client.security.hasPrivileges({ cluster: ["monitor", "manage"], index: [ { names: ["suppliers", "products"], privileges: ["read"], }, { names: ["inventory"], privileges: ["read", "write"], }, ], application: [ { application: "inventory_manager", privileges: ["read", "data:write/inventory"], resources: ["product/1852563"], }, ], }); console.log(response);
GET /_security/user/_has_privileges { "cluster": [ "monitor", "manage" ], "index" : [ { "names": [ "suppliers", "products" ], "privileges": [ "read" ] }, { "names": [ "inventory" ], "privileges" : [ "read", "write" ] } ], "application": [ { "application": "inventory_manager", "privileges" : [ "read", "data:write/inventory" ], "resources" : [ "product/1852563" ] } ] }
以下示例输出指示“rdeniro”用户拥有哪些权限。
{ "username": "rdeniro", "has_all_requested" : false, "cluster" : { "monitor" : true, "manage" : false }, "index" : { "suppliers" : { "read" : true }, "products" : { "read" : true }, "inventory" : { "read" : true, "write" : false } }, "application" : { "inventory_manager" : { "product/1852563" : { "read": false, "data:write/inventory": false } } } }