Ресурсы сопоставления ролей
Ресурс сопоставления ролей имеет следующие свойства:
-
enabled - (Булево) Сопоставления, у которых
enabledустановлено вfalse, игнорируются при выполнении сопоставления ролей. -
metadata - (объект) Дополнительные метаданные, помогающие определить, какие роли назначены каждому пользователю. Внутри объекта
metadataключи, начинающиеся с_, зарезервированы для использования системой. -
roles - (список) Список ролей, предоставляемых пользователям, которые соответствуют правилам сопоставления ролей.
-
rules -
(объект) Правила, определяющие, какие пользователи должны соответствовать сопоставлению. Правило — это логическое условие, выраженное с помощью JSON DSL. DSL поддерживает следующие типы правил:
-
any - (массив правил) Если любое из его дочерних элементов истинно, он оценивается как
true. -
all - (массив правил) Если все его дочерние элементы истинны, он оценивается как
true. -
field - (объект) См. Правила полей.
-
except - (объект) Одно правило в виде объекта. Действительно только как дочерний элемент правила
all. Если его дочерний элемент —false, тоexceptявляетсяtrue.
-
Правила полей
Правило field является основным строительным блоком для выражения сопоставления ролей. Оно принимает один объект в качестве значения, и этот объект должен содержать один член с ключом F и значением V. Правило поля ищет значение F в объекте пользователя и затем проверяет, соответствует ли значение пользователя предоставленному значению V.
Значение, указанное в правиле поля, может быть одного из следующих типов:
| Тип | Описание | Пример |
|---|---|---|
Простая строка | Точно соответствует предоставленному значению. |
|
Строка с подстановкой | Сопоставляет предоставленное значение с помощью подстановки. |
|
Регулярное выражение | Сопоставляет предоставленное значение с помощью Lucene regexp. |
|
Число | Сопоставляет эквивалентное числовое значение. |
|
Null | Сопоставляет значение null или отсутствующее значение. |
|
Массив | Проверяет каждый элемент массива в соответствии с вышеперечисленными определениями. Если хотя бы один элемент соответствует, совпадение считается успешным. |
|
Поля пользователя
Объект пользователя, по которому оцениваются правила, содержит следующие поля:
-
username - (строка) Имя пользователя, по которому службы безопасности Elasticsearch знают этого пользователя. Например,
"username": "jsmith". -
dn - (строка) Полное имя пользователя. Например,
"dn": "cn=jsmith,ou=users,dc=example,dc=com",. -
groups - (массив строк) Группы, к которым принадлежит пользователь. Например,
"groups" : [ "cn=admin,ou=groups,dc=example,dc=com","cn=esusers,ou=groups,dc=example,dc=com ]. -
metadata - (объект) Дополнительные метаданные для пользователя. Это может включать различные пары ключ-значение. При ссылке на поля метаданных в правилах сопоставления ролей используйте нотацию точки для указания ключа внутри объекта метаданных. Если ключ содержит специальные символы, такие как скобки, точки или пробелы, вы должны экранировать эти символы с помощью обратных слэшей (
\). Например,"metadata": { "cn": "John Smith" }. -
realm - (объект) Сфера, которая провела аутентификацию пользователя. Единственное поле в этом объекте — имя сферы. Например,
"realm": { "name": "ldap1" }.
Поле groups имеет несколько значений; пользователь может принадлежать к нескольким группам. Когда правило field применяется к полю с несколькими значениями, оно считается соответствующим, если хотя бы одно из значений членов соответствует. Например, следующее правило соответствует любому пользователю, который является членом группы admin, независимо от других групп, к которым он принадлежит:
{ "field" : { "groups" : "admin" } } Дополнительную информацию о конкретной сфере см. в разделе Сферы Active Directory и LDAP.
© 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/role-mapping-resources.html