获取角色 API

编辑

检索原生领域中的角色。

请求

编辑

GET /_security/role

GET /_security/role/<name>

前提条件

编辑
  • 要使用此 API,您必须至少拥有 read_security 集群特权。

描述

编辑

通常,角色管理 API 是管理角色的首选方法,而不是使用 基于文件的角色管理。获取角色 API 无法检索在角色文件中定义的角色。

路径参数

编辑
name
(可选,字符串)角色的名称。您可以将多个角色指定为逗号分隔的列表。如果您不指定此参数,API 将返回有关所有角色的信息。

响应体

编辑

成功调用会返回一个角色数组,其中包含角色的 JSON 表示形式。返回的角色格式是 角色定义 格式的简单扩展,仅添加了一个额外的字段 transient_metadata.enabled。如果角色自动禁用(例如,当许可证级别不允许该角色授予的某些权限时),则此字段为 false

响应代码

编辑

如果该角色未在原生领域中定义,则请求返回 404。

示例

编辑

以下示例检索有关原生领域中 my_admin_role 角色的信息

resp = client.security.get_role(
    name="my_admin_role",
)
print(resp)
const response = await client.security.getRole({
  name: "my_admin_role",
});
console.log(response);
GET /_security/role/my_admin_role
{
  "my_admin_role": {
    "description": "Grants full access to all management features within the cluster.",
    "cluster" : [ "all" ],
    "indices" : [
      {
        "names" : [ "index1", "index2" ],
        "privileges" : [ "all" ],
        "allow_restricted_indices" : false,
        "field_security" : {
          "grant" : [ "title", "body" ]}
      }
    ],
    "applications" : [ ],
    "run_as" : [ "other_user" ],
    "metadata" : {
      "version" : 1
    },
    "transient_metadata": {
      "enabled": true
    }
  }
}

要检索所有角色,请省略角色名称

resp = client.security.get_role()
print(resp)
const response = await client.security.getRole();
console.log(response);
GET /_security/role