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, либо JWTid_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