Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›REST API ›API безопасности

API создания или обновления пользователей

Справочник API

Для получения самых последних данных API обратитесь к 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 
}

При обновлении существующего пользователя created устанавливается в значение false.

После добавления пользователя запросы от этого пользователя могут быть аутентифицированы. Например:

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

Spec-Zone.ru

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