API создания или обновления пользователей
Добавляет и обновляет пользователей в родном домене. Такие пользователи обычно называются родными пользователями.
Запрос
POST /_security/user/<username>
PUT /_security/user/<username>
Предварительные условия
- Для использования этого API требуется как минимум привилегия кластера
manage_security.
Описание
Для добавления нового пользователя требуется password, но при обновлении существующего пользователя она необязательна. Чтобы изменить пароль пользователя без обновления других полей, используйте API изменения паролей.
Дополнительную информацию о родном домене см. в разделах Домены и Аутентификация родных пользователей.
Параметры пути
-
username -
(Обязательный параметр, строка) Идентификатор пользователя.
Имена пользователей должны содержать от 1 до 507 символов. Они могут включать алфавитно-цифровые символы (
a-z,A-Z,0-9), пробелы, знаки препинания и печатные символы в блоке Basic Latin (ASCII). Пробелы в начале или конце не допускаются.
Параметры запроса
-
refresh - (строка) Одно из значений
true,falseилиwait_for. Эти значения имеют то же значение, что и в API индекса, но значение по умолчанию для этого API (Put User) равноtrue.
Тело запроса
В теле запроса POST или PUT можно указать следующие параметры:
-
enabled - (Булево) Указывает, включен ли пользователь. Значение по умолчанию —
true. -
email - (строка) Электронная почта пользователя.
-
full_name - (строка) Полное имя пользователя.
-
metadata - (объект) Произвольные метаданные, которые вы хотите связать с пользователем.
-
password -
(Обязательный*, строка) Пароль пользователя. Пароли должны содержать не менее 6 символов.
При добавлении пользователя требуется одно из значений
passwordилиpassword_hash. При обновлении существующего пользователя пароль необязателен, чтобы можно было обновлять другие поля пользователя (например, его роли) без изменения пароля. -
password_hash -
(строка) Хэш пароля пользователя. Он должен быть сгенерирован с использованием того же алгоритма хеширования, что и алгоритм хранения паролей. Более подробную информацию см. в объяснении параметра
xpack.security.authc.password_hashing.algorithmв разделе Алгоритмы хеширования и кэширования пользователей.Использование этого параметра позволяет клиенту предварительно хешировать пароль для повышения производительности и/или конфиденциальности.
Параметры
passwordиpassword_hashне могут использоваться в одном запросе. -
roles - (Обязательный список) Набор ролей пользователя. Роли определяют права доступа пользователя. Чтобы создать пользователя без ролей, укажите пустой список:
[].
*Указывает, что параметр обязателен в некоторых, но не во всех ситуациях.
Примеры
В следующем примере создается пользователь jacknich:
resp = client.security.put_user(
username="jacknich",
password="l0ng-r4nd0m-p@ssw0rd",
roles=[
"admin",
"other_role1"
],
full_name="Jack Nicholson",
email="jacknich@example.com",
metadata={
"intelligence": 7
},
)
print(resp) const response = await client.security.putUser({
username: "jacknich",
password: "l0ng-r4nd0m-p@ssw0rd",
roles: ["admin", "other_role1"],
full_name: "Jack Nicholson",
email: "jacknich@example.com",
metadata: {
intelligence: 7,
},
});
console.log(response); POST /_security/user/jacknich
{
"password" : "l0ng-r4nd0m-p@ssw0rd",
"roles" : [ "admin", "other_role1" ],
"full_name" : "Jack Nicholson",
"email" : "jacknich@example.com",
"metadata" : {
"intelligence" : 7
}
} При успешном вызове возвращается JSON-структура, которая показывает, был ли пользователь создан или обновлен.
{
"created": true
} | При обновлении существующего пользователя |
После добавления пользователя запросы от этого пользователя могут быть аутентифицированы. Например:
curl -u jacknich:l0ng-r4nd0m-p@ssw0rd http://localhost:9200/_cluster/health
© 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-put-user.html