定义

edit

您可以在下面找到的角色映射资源定义用于与安全功能相关的API中。

角色映射资源

edit

角色映射资源具有以下属性:

enabled
(布尔值) 当执行角色映射时,enabled 设置为 false 的映射将被忽略。
metadata
(对象) 附加的元数据,用于定义每个用户被分配的角色。在 metadata 对象中,以 _ 开头的键是为系统使用保留的。
roles
(列表) 分配给符合角色映射规则的用户的角色列表。
rules

(对象) 确定哪些用户应由映射匹配的规则。 规则是使用 JSON DSL 表示的逻辑条件。DSL 支持以下规则类型:

any
(规则数组) 如果其子规则中任意一个为真,则其值为 true
all
(规则数组) 如果其子规则中全部为真,则其值为 true
field
(对象) 参见 字段规则
except
(对象) 一个作为对象的单一规则。仅作为 all 规则的子规则有效。如果其子规则为 false,则 excepttrue

字段规则

edit

字段规则是角色映射表达式的主要构建块。它接受一个对象作为其值,并且该对象必须包含一个键为F,值为V的成员。字段规则在用户对象中查找F的值,然后测试用户值是否与提供的值V匹配。

在字段规则中指定的值可以是以下类型之一:

Type Description Example

简单字符串

完全匹配提供的值。

"esadmin"

通配符字符串

使用通配符匹配提供的值。

"*,dc=example,dc=com"

正则表达式

使用 Lucene 正则表达式匹配提供的值。

"/.*-admin[0-9]*/"

数字

匹配一个等效的数值。

7

匹配空值或缺失值。

空值

数组

根据上述定义测试数组中的每个元素。如果任何元素匹配,则匹配成功。

["admin", "operator"]

用户字段
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 领域