Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›REST API ›API безопасности

API получения профилей пользователей

Новая справка по API

Для получения самых актуальных данных по API обратитесь к API безопасности.

Функция профилей пользователей предназначена только для использования Kibana и решений Elastic по наблюдательности, поиску и безопасности. Индивидуальные пользователи и внешние приложения не должны вызывать этот API напрямую. Elastic оставляет за собой право изменить или удалить эту функцию в будущих выпусках без предварительного уведомления.

Получает профили пользователей с помощью списка уникальных идентификаторов профиля.

Запрос

GET /_security/profile/<uid>

Предварительные условия

Для использования этого API у вас должно быть как минимум read_security разрешение кластера (или более высокое разрешение, например manage_user_profile или manage_security).

Описание

API получения профиля пользователя возвращает документ профиля пользователя, соответствующий указанному uid, который генерируется при активации профиля пользователя.

Параметры пути

uid
(Обязательно, строка) Уникальный идентификатор профиля пользователя. Вы можете указать несколько идентификаторов через запятую.

Параметры запроса

data
(Необязательно, строка) Список фильтров через запятую для поля data документа профиля. Для возвращения всего содержимого используйте data=*. Для возвращения подмножества содержимого используйте data=<key> для получения вложенного содержимого по указанному <key>. По умолчанию возвращается без содержимого.

Тело ответа

Успешный вызов возвращает JSON-представление профиля пользователя и его внутренних номеров версий. API возвращает пустой объект, если для предоставленного uid не найден документ профиля. Содержимое поля data по умолчанию не возвращается для избежания десериализации потенциально большого объёма данных.

Примеры

resp = client.security.get_user_profile(
    uid="u_79HkWkwmnBH5gqFKwoxggWPjEBOur1zLPXQPEl1VBW0_0",
)
print(resp)
const response = await client.security.getUserProfile({
  uid: "u_79HkWkwmnBH5gqFKwoxggWPjEBOur1zLPXQPEl1VBW0_0",
});
console.log(response);
GET /_security/profile/u_79HkWkwmnBH5gqFKwoxggWPjEBOur1zLPXQPEl1VBW0_0

API возвращает следующий ответ для uid, соответствующего u_79HkWkwmnBH5gqFKwoxggWPjEBOur1zLPXQPEl1VBW0_0:

{
  "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": "jacknich@example.com"
      },
      "labels": {
        "direction": "north"
      },
      "data": {}, 
      "_doc": {
        "_primary_term": 88,
        "_seq_no": 66
      }
    }
  ]
}

По умолчанию содержимое поля data не возвращается.

Следующий запрос извлекает подмножество data, вложенное под ключом app1, вместе с профилем пользователя:

resp = client.security.get_user_profile(
    uid="u_79HkWkwmnBH5gqFKwoxggWPjEBOur1zLPXQPEl1VBW0_0",
    data="app1.key1",
)
print(resp)
const response = await client.security.getUserProfile({
  uid: "u_79HkWkwmnBH5gqFKwoxggWPjEBOur1zLPXQPEl1VBW0_0",
  data: "app1.key1",
});
console.log(response);
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": "jacknich@example.com"
      },
      "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"
       }
    }
  }
}

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/security-api-get-user-profile.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API