角色映射资源
编辑角色映射资源
编辑角色映射资源具有以下属性:
-
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 正则表达式 匹配提供的值。 |
|
数字 |
匹配等效的数值。 |
|
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。此对象中的唯一字段是 realm 名称。例如,
"realm": { "name": "ldap1" }
。
groups
字段是多值的;一个用户可以属于多个组。当针对多值字段应用 field
规则时,如果至少一个成员值匹配,则视为匹配。例如,以下规则匹配任何属于 admin
组的用户,无论他们属于任何其他组:
{ "field" : { "groups" : "admin" } }
有关特定于 realm 的其他详细信息,请参阅 Active Directory 和 LDAP realm。