角色映射资源

编辑

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

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

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

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

字段规则

编辑

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

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

类型 描述 示例

简单字符串

与提供的值完全匹配。

"esadmin"

通配符字符串

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

"*,dc=example,dc=com"

正则表达式

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

"/.*-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