角色映射资源
编辑角色映射资源编辑
角色映射资源具有以下属性
-
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 值 匹配。
在字段规则中指定的 value 可以是以下类型之一
类型 | 描述 | 示例 |
---|---|---|
简单字符串 |
与提供的 value 完全匹配。 |
|
通配符字符串 |
使用通配符匹配提供的 value。 |
|
正则表达式 |
使用 Lucene 正则表达式 匹配提供的 value。 |
|
数字 |
匹配等效的数值。 |
|
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。