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

API создания или обновления привилегий приложения

Добавляет или обновляет привилегии приложения.

Запрос

POST /_security/privilege

PUT /_security/privilege

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

Для использования этого API необходимо обладать одним из следующих:

  • привилегией кластера manage_security (или большей привилегией, например, all); или
  • глобальной привилегией "Управление привилегиями приложения" для приложения, на которое ссылается запрос

Описание

Этот API создаёт или обновляет привилегии. Для удаления привилегий используйте API удаления привилегий приложения.

Дополнительную информацию см. в разделе Привилегии приложения.

Для проверки привилегий приложения пользователя используйте API проверки привилегий.

Тело запроса

Тело представляет собой JSON-объект, где названия полей — имена приложений, а значение каждого поля — объект. Поля во внутреннем объекте — имена привилегий, а каждое значение — JSON-объект, включающий следующие поля:

actions
(массив строк) Список имён действий, предоставляемых этой привилегией. Это поле должно существовать и не может быть пустым массивом.
metadata
(объект) Необязательные метаданные. Внутри объекта metadata ключи, начинающиеся с _, зарезервированы для использования системой.

Валидация

Имена приложений

Имена приложений состоят из префикса и необязательного суффикса, соответствующего следующим правилам:

  • Префикс должен начинаться с маленькой латинской буквы
  • Префикс должен содержать только латинские буквы или цифры
  • Префикс должен содержать не менее 3 символов
  • Если суффикс существует, он должен начинаться с - или _
  • Суффикс не должен содержать следующих символов: \, /, *, ?, ", <, >, |, ,, *
  • Никакая часть имени не может содержать пробелы.
Имена привилегий
Имена привилегий должны начинаться с маленькой латинской буквы и содержать только латинские буквы и цифры, а также символы _, - и .
Имена действий
Имена действий могут содержать любое количество печатных ASCII-символов и должны содержать по меньшей мере один из следующих символов: / *, :

Тело ответа

Успешный вызов возвращает JSON-структуру, показывающую, была ли привилегия создана или обновлена.

Примеры

Чтобы добавить одну привилегию, отправьте запрос PUT или POST на конечную точку /_security/privilege/. Например:

PUT /_security/privilege
{
  "myapp": {
    "read": {
      "actions": [ 
        "data:read/*" , 
        "action:login" ],
        "metadata": { 
          "description": "Read access to myapp"
        }
      }
    }
}

Эти строки имеют значение в приложении "myapp". Elasticsearch не присваивает им никакого значения.

Использование подстановки (*) означает, что эта привилегия предоставляет доступ ко всем действиям, начинающимся с data:read/. Elasticsearch не присваивает этим действиям никакого значения. Однако, если запрос содержит привилегию приложения, такую как data:read/users или data:read/settings, API проверки привилегий учитывает использование подстановки и возвращает true.

Объект метаданных необязателен.

{
  "myapp": {
    "read": {
      "created": true 
    }
  }
}

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

Чтобы добавить несколько привилегий, отправьте запрос POST на конечную точку /_security/privilege/. Например:

PUT /_security/privilege
{
  "app01": {
    "read": {
      "actions": [ "action:login", "data:read/*" ]
    },
    "write": {
      "actions": [ "action:login", "data:write/*" ]
    }
  },
  "app02": {
    "all": {
      "actions": [ "*" ]
    }
  }
}

Успешный вызов возвращает JSON-структуру, показывающую, были ли привилегии созданы или обновлены.

{
  "app02": {
    "all": {
      "created": true
    }
  },
  "app01": {
    "read": {
      "created": true
    },
    "write": {
      "created": true
    }
  }
}

© 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/7.17/security-api-put-privileges.html

Spec-Zone.ru

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