授权异常
编辑授权异常
编辑症状
- 我配置了适当的角色和用户,但仍然收到授权异常。
- 我可以向 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
有关更多信息,请参阅 配置日志级别。
成功的身份验证应生成列出组和角色映射的调试语句。