定义
edit定义
edit您可以在下面找到的角色映射资源定义用于与安全功能相关的API中。
角色映射资源
edit角色映射资源具有以下属性:
-
enabled -
(布尔值) 当执行角色映射时,
enabled设置为false的映射将被忽略。 -
metadata -
(对象) 附加的元数据,用于定义每个用户被分配的角色。在
metadata对象中,以_开头的键是为系统使用保留的。 -
roles - (列表) 分配给符合角色映射规则的用户的角色列表。
-
rules -
(对象) 确定哪些用户应由映射匹配的规则。 规则是使用 JSON DSL 表示的逻辑条件。DSL 支持以下规则类型:
-
any -
(规则数组) 如果其子规则中任意一个为真,则其值为
true。 -
all -
(规则数组) 如果其子规则中全部为真,则其值为
true。 -
field - (对象) 参见 字段规则。
-
except -
(对象) 一个作为对象的单一规则。仅作为
all规则的子规则有效。如果其子规则为false,则except为true。
-
字段规则
edit字段规则是角色映射表达式的主要构建块。它接受一个对象作为其值,并且该对象必须包含一个键为F,值为V的成员。字段规则在用户对象中查找F的值,然后测试用户值是否与提供的值V匹配。
在字段规则中指定的值可以是以下类型之一:
| Type | Description | Example |
|---|---|---|
简单字符串 |
完全匹配提供的值。 |
|
通配符字符串 |
使用通配符匹配提供的值。 |
|
正则表达式 |
使用 Lucene 正则表达式匹配提供的值。 |
|
数字 |
匹配一个等效的数值。 |
|
空 |
匹配空值或缺失值。 |
|
数组 |
根据上述定义测试数组中的每个元素。如果任何元素匹配,则匹配成功。 |
|
用户字段
edit用于评估规则的用户对象具有以下字段:
-
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" }。
The groups field 是多值的;一个用户可以属于多个组。当一个
field 规则应用于多值字段时,如果 至少一个 成员值匹配,则认为匹配。例如,以下规则
匹配任何属于 admin 组的用户,无论他们属于其他任何组:
{ "field" : { "groups" : "admin" } }
有关特定领域的更多详细信息,请参阅 Active Directory 和 LDAP 领域。