获取用户配置文件 API编辑

用户配置文件功能仅供 Kibana 和 Elastic 的可观察性、企业搜索和 Elastic 安全解决方案使用。个人用户和外部应用程序不应直接调用此 API。Elastic 保留将来在不事先通知的情况下更改或删除此功能的权利。

使用唯一配置文件 ID 列表检索用户配置文件。

请求编辑

GET /_security/profile/<uid>

先决条件编辑

要使用此 API,您必须*至少*拥有 read_security 集群权限(或更高级别的权限,例如 manage_user_profilemanage_security)。

描述编辑

获取用户配置文件 API 返回与指定 uid 匹配的用户配置文件文档,该文档在激活用户配置文件时生成。

路径参数编辑

uid
(必填,字符串)用户配置文件的唯一标识符。您可以将多个 ID 指定为逗号分隔的列表。

查询参数编辑

data
(可选,字符串)配置文件文档的 data 字段的过滤器逗号分隔列表。要返回所有内容,请使用 data=*。要返回内容的子集,请使用 data=<key> 检索嵌套在指定 <key> 下的内容。默认情况下不返回任何内容。

响应正文编辑

成功的调用将返回用户配置文件及其内部版本号的 JSON 表示形式。如果未找到提供 uid 的配置文件文档,则 API 将返回一个空对象。默认情况下,不会返回 data 字段的内容,以避免反序列化潜在的大型有效负载。

示例编辑

GET /_security/profile/u_79HkWkwmnBH5gqFKwoxggWPjEBOur1zLPXQPEl1VBW0_0

对于与 u_79HkWkwmnBH5gqFKwoxggWPjEBOur1zLPXQPEl1VBW0_0 匹配的 uid,API 将返回以下响应

{
  "profiles": [
    {
      "uid": "u_79HkWkwmnBH5gqFKwoxggWPjEBOur1zLPXQPEl1VBW0_0",
      "enabled": true,
      "last_synchronized": 1642650651037,
      "user": {
        "username": "jacknich",
        "roles": [
          "admin", "other_role1"
        ],
        "realm_name": "native",
        "full_name": "Jack Nicholson",
        "email": "[email protected]"
      },
      "labels": {
        "direction": "north"
      },
      "data": {}, 
      "_doc": {
        "_primary_term": 88,
        "_seq_no": 66
      }
    }
  ]
}

默认情况下,data 字段中不返回任何内容。

以下请求检索嵌套在键 app1 下的 data 子集,以及用户的配置文件

GET /_security/profile/u_79HkWkwmnBH5gqFKwoxggWPjEBOur1zLPXQPEl1VBW0_0?data=app1.key1
{
  "profiles": [
    {
      "uid": "u_79HkWkwmnBH5gqFKwoxggWPjEBOur1zLPXQPEl1VBW0_0",
      "enabled": true,
      "last_synchronized": 1642650651037,
      "user": {
        "username": "jacknich",
        "roles": [
          "admin", "other_role1"
        ],
        "realm_name": "native",
        "full_name": "Jack Nicholson",
        "email": "[email protected]"
      },
      "labels": {
        "direction": "north"
      },
      "data": {
        "app1": {
          "key1": "value1"
        }
      },
      "_doc": {
        "_primary_term": 88,
        "_seq_no": 66
      }
    }
  ]
}

如果在检索用户配置文件时出现任何错误,则会在 errors 字段中返回这些错误

{
  "profiles": [],
  "errors": {
    "count": 1,
    "details": {
       "u_FmxQt3gr1BBH5wpnz9HkouPj3Q710XkOgg1PWkwLPBW_5": {
         "type": "resource_not_found_exception",
         "reason": "profile document not found"
       }
    }
  }
}