匿名身份验证
安全插件支持匿名身份验证,用户无需提供凭据即可访问集群。这在您希望许多人能够以一组公共权限访问集群的情况下非常有用。
配置
要启用匿名身份验证,您需要修改集群 config/udbsx-security 配置子目录中的 config.yml 文件。
在 config.yml 文件中,有一个 http 部分,其中包含 anonymous_auth_enabled 设置:
http:
anonymous_auth_enabled: <true|false>
...
下表描述了 anonymous_auth_enabled 设置。
| 设置 | 描述 |
|---|---|
anonymous_auth_enabled |
启用或禁用匿名身份验证。启用匿名身份验证后,所有已定义的 HTTP 验证器将变为非挑战模式。 |
如果您禁用匿名身份验证,则必须至少提供一个 authc,以便安全插件成功初始化。
UDB-SX Dashboards 配置
要为 UDB-SX Dashboards 启用匿名身份验证,您需要修改 UDB-SX Dashboards 安装配置目录中的 udbsx_dashboards.yml 文件。
将以下设置添加到 udbsx_dashboards.yml:
udbsx_security.auth.anonymous_auth_enabled: true
UDB-SX Dashboards 的匿名登录要求在 UDB-SX 集群上启用匿名身份验证。
定义匿名身份验证权限
启用匿名身份验证后,您定义的 HTTP 验证器仍会尝试在 HTTP 请求中查找用户凭据。如果找到凭据,则用户通过身份验证。如果未找到,则用户将作为 anonymous 用户通过身份验证。
所有匿名用户的用户名均为 anonymous,且拥有一个名为 anonymous_backendrole 的角色。
您可以在 roles.yml 文件中配置与 opendistro_security_anonymous_backendrole 关联的权限。
以下是 anonymous_users_role 的角色定义示例。您可以将此示例作为在 roles.yml 文件中定义自己角色的参考:
anonymous_users_role:
reserved: false
hidden: false
cluster_permissions:
- "OPENDISTRO_SECURITY_CLUSTER_COMPOSITE_OPS"
index_permissions:
- index_patterns:
- "public_index_*"
allowed_actions:
- "read"
然后,在 roles_mapping.yml 文件中,您可以为此新角色定义适当的映射:
anonymous_users_role:
reserved: false
hidden: false
backend_roles: ["opendistro_security_anonymous_backendrole"]
hosts: []
请注意,该角色映射到 opendistro_security_anonymous_backendrole,这意味着所有具有匿名用户后端角色的用户都将拥有这些权限。也可以使用 REST API 或 UDB-SX Dashboards 完成这些步骤。