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

API активации профиля пользователя

Справочник по новым API

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

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

Создаёт или обновляет профиль пользователя от имени другого пользователя.

Запрос

POST /_security/profile/_activate

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

  • Для использования этого API необходимо иметь привилегию manage_user_profile кластера.

Описание

API активации профиля пользователя создаёт или обновляет документ профиля для конечных пользователей с информацией, извлечённой из объекта аутентификации пользователя, включая username, full_name, roles и область аутентификации. Например, в случае JWT access_token профиль пользователя username извлекается из утверждения токена JWT, на которое указывает параметр claims.principal области JWT, авторизовавшей токен.

При обновлении документа профиля API включает документ, если он был отключён. Любые обновления не изменяют существующее содержимое для полей labels или data.

Этот API предназначен только для использования приложениями (такими как Kibana), которым необходимо создавать или обновлять профили конечных пользователей.

Вызывающее приложение должно иметь либо access_token, либо комбинацию username и password для пользователя, для которого предназначен документ профиля.

Тело запроса

access_token
(Обязательно*, строка) Токен доступа Elasticsearch пользователя или JWT. Поддерживаются оба типа токенов access и id JWT, они зависят от конфигурации базовой области JWT. Если вы указываете тип гранта access_token, этот параметр обязателен. Он не действителен с другими типами грантов.
client_authentication

(Необязательно, объект) При использовании типа гранта access_token и при предоставлении JWT, это задаёт аутентификацию клиента для JWT, которые её требуют (т.е. то, что обычно задаётся в заголовке запроса ES-Client-Authentication).

scheme
(Обязательно, строка) Схема (регистрозависимая), как она предоставлена в заголовке запроса ES-Client-Authentication. В настоящее время поддерживается только значение SharedSecret.
value
(Обязательно, строка) Значение, следующее за схемой для учетных данных клиента, как оно передаётся в заголовке запроса ES-Client-Authentication. Например, если заголовок запроса был бы ES-Client-Authentication: SharedSecret myShar3dS3cret, если клиент аутентифицировался бы напрямую с помощью JWT, то value здесь должен быть myShar3dS3cret.
grant_type

(Обязательно, строка) Тип гранта.

Допустимые значения для grant_type
access_token
В этом типе гранта вы должны предоставить токен доступа, который был создан службой токенов Elasticsearch (см. Получение токена и Шифрование HTTP-взаимодействий с Elasticsearch), или JWT (либо JWT access_token, либо JWT id_token).
password
В этом типе гранта вы должны предоставить username и password для пользователя, для которого вы хотите создать ключ API.
password
(Обязательно*, строка) Пароль пользователя. Если вы указываете тип гранта password, этот параметр обязателен. Он не действителен с другими типами грантов.
username
(Обязательно*, строка) Имя пользователя, идентифицирующее пользователя. Если вы указываете тип гранта password, этот параметр обязателен. Он не действителен с другими типами грантов.

*Указывает, что настройка требуется в некоторых, но не во всех ситуациях.

Тело ответа

Успешный вызов API активации профиля пользователя возвращает JSON-структуру, содержащую уникальный идентификатор профиля, информацию о пользователе, отметку времени операции и номера управления версиями.

Примеры

resp = client.security.activate_user_profile(
    grant_type="password",
    username="jacknich",
    password="l0ng-r4nd0m-p@ssw0rd",
)
print(resp)
const response = await client.security.activateUserProfile({
  grant_type: "password",
  username: "jacknich",
  password: "l0ng-r4nd0m-p@ssw0rd",
});
console.log(response);
POST /_security/profile/_activate
{
  "grant_type": "password",
  "username" : "jacknich",
  "password" : "l0ng-r4nd0m-p@ssw0rd"
}

API возвращает следующий ответ:

{
  "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": {},
  "data": {},
  "_doc": {
    "_primary_term": 88,
    "_seq_no": 66
  }
}

© 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-activate-user-profile.html

Spec-Zone.ru

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