匿名身份验证

安全插件支持匿名身份验证,用户无需提供凭据即可访问集群。这在您希望许多人能够以一组公共权限访问集群的情况下非常有用。

配置

要启用匿名身份验证,您需要修改集群 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 完成这些步骤。