授权异常
编辑授权异常
编辑症状
- 我配置了相应的角色和用户,但仍然出现授权异常。
- 我可以认证到 LDAP,但仍然出现授权异常。
解决方案
-
验证与用户关联的角色名称是否与
roles.yml
文件中定义的角色匹配。您可以使用elasticsearch-users
工具列出所有用户。任何未知的角色都用*
标记。bin/elasticsearch-users list rdeniro : admin alpacino : power_user jacknich : monitoring,unknown_role*
有关此命令的更多信息,请参阅
elasticsearch-users
命令。 -
如果您正在认证到 LDAP,则许多配置选项都可能导致此错误。
组识别
组通过 LDAP 搜索或用户上的“memberOf”属性来定位。此外,如果关闭子树搜索,它将仅搜索一层。有关所有选项,请参阅 LDAP 领域设置。这里有很多选项,并且坚持使用默认设置并不能满足所有场景。
组到角色映射
role_mapping.yml
文件或此文件的位置可能配置错误。有关更多信息,请参阅 安全文件。角色定义
角色定义可能丢失或无效。
为了帮助跟踪这些可能性,请启用其他日志记录以进一步进行故障排除。您可以通过配置以下持久性设置来启用调试日志记录
resp = client.cluster.put_settings( persistent={ "logger.org.elasticsearch.xpack.security.authc": "debug" }, ) print(resp)
response = client.cluster.put_settings( body: { persistent: { 'logger.org.elasticsearch.xpack.security.authc' => 'debug' } } ) puts response
const response = await client.cluster.putSettings({ persistent: { "logger.org.elasticsearch.xpack.security.authc": "debug", }, }); console.log(response);
PUT /_cluster/settings { "persistent": { "logger.org.elasticsearch.xpack.security.authc": "debug" } }
或者,您可以将以下行添加到
ES_PATH_CONF
中log4j2.properties
配置文件的末尾logger.authc.name = org.elasticsearch.xpack.security.authc logger.authc.level = DEBUG
有关更多信息,请参阅 配置日志级别。
成功的身份验证应生成列出组和角色映射的调试语句。