匿名认证
安全插件支持匿名认证,用户无需提供凭据即可访问集群。这在您希望许多人以一组共同的权限访问集群的情况下非常有用。
配置
要启用匿名认证,您需要修改集群的 opensearch-security
配置子目录中的 config.yml
文件。
在 config.yml
文件中,有一个 http
部分,其中包含 anonymous_auth_enabled
设置
http:
anonymous_auth_enabled: <true|false>
...
下表描述了 anonymous_auth_enabled
设置。更多信息,请参阅配置文件概述。
设置 | 描述 |
---|---|
anonymous_auth_enabled | 启用或禁用匿名认证。当您启用匿名认证时,所有已定义的 HTTP 认证器都是非挑战性的。请参阅挑战设置。 |
如果您禁用匿名认证,则必须至少提供一个 authc
,安全插件才能成功初始化。
OpenSearch Dashboards 配置
要为 OpenSearch Dashboards 启用匿名认证,您需要修改 OpenSearch Dashboards 安装的配置目录中的 opensearch_dashboards.yml
文件。
将以下设置添加到 opensearch_dashboards.yml
opensearch_security.auth.anonymous_auth_enabled: true
OpenSearch Dashboards 的匿名登录要求 OpenSearch 集群上启用匿名认证。
定义匿名认证权限
启用匿名认证后,您定义的 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 或 OpenSearch Dashboards 完成这些步骤。