角色映射资源编辑

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

enabled
(布尔值) 将 enabled 设置为 false 的映射在执行角色映射时会被忽略。
metadata
(对象) 帮助定义为每个用户分配哪些角色的附加元数据。在 metadata 对象中,以 _ 开头的键保留供系统使用。
roles
(列表) 授予与角色映射规则匹配的用户的一组角色。
rules

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

any
(规则数组) 如果其子项中的 任何一个 为真,则其结果为 true
all
(规则数组) 如果其子项中的 所有 为真,则其结果为 true
field
(对象) 请参阅 字段规则
except
(对象) 一个作为对象的单个规则。仅在 all 规则的子项中有效。如果其子项为 false,则 excepttrue

字段规则编辑

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

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

类型 描述 示例

简单字符串

与提供的 value 完全匹配。

"esadmin"

通配符字符串

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

"*,dc=example,dc=com"

正则表达式

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

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

数字

匹配等效的数值。

7

Null

匹配 null 或缺失值。

null

数组

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

["admin", "operator"]

用户字段编辑

评估规则的 用户对象 具有以下字段

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。此对象中唯一的字段是 realm 名称。例如,"realm": { "name": "ldap1" }

groups 字段是多值的;用户可以属于多个组。当 field 规则应用于多值字段时,如果 至少一个 成员值匹配,则认为匹配成功。例如,以下规则匹配任何属于 admin 组的用户,无论他们还属于哪些其他组

{ "field" : { "groups" : "admin" } }

有关特定于 realm 的更多详细信息,请参阅 Active Directory 和 LDAP realm