HTTP 基本认证
HTTP 基本认证提供了一种简单的质询-响应过程,用于获取对 OpenSearch 及其资源的访问权限,它会提示您使用用户名和密码登录。您可以通过在配置的 http_authenticator
部分中将 type
指定为 basic
来启用 HTTP 基本认证,如下例所示
_meta:
type: "config"
config_version: 2
config:
dynamic:
authc:
basic_internal_auth_domain:
description: "Authenticate using HTTP basic against the internal users database"
http_enabled: true
transport_enabled: true
order: 1
http_authenticator:
type: basic
challenge: true
authentication_backend:
type: internal
此外,您可以通过将 authentication_backend
的类型指定为 internal
来将内部用户数据库指定为认证后端。有关此后端的信息,请参阅内部用户数据库。
一旦 HTTP 认证器类型指定为 basic
且认证后端类型指定为 internal
,则无需在 config.yml
中进行进一步配置,除非您计划将其他认证后端与 HTTP 基本认证一起使用。请继续阅读有关此类设置的注意事项以及 challenge
设置的更多信息。
质询设置
在大多数情况下,对于基本认证,将 challenge
设置为 true
是合适的。此设置定义了当 HTTP 标头中未指定 Authorization
字段时安全插件的行为。默认情况下,此设置为 true
。
当 challenge
设置为 true
时,安全插件会向客户端发送状态为 UNAUTHORIZED
(401) 的响应。如果客户端使用浏览器访问集群,这将触发认证对话框,并提示用户输入用户名和密码。当 HTTP 基本认证是唯一使用的后端时,这是一种常见的配置。
当 challenge
设置为 false
且请求中未指定 Authorization
标头时,安全插件不会向客户端发送 WWW-Authenticate
响应,并且认证会失败。此配置通常用于您在配置的认证域中包含多个质询 http_authenticator
设置的情况。例如,当您计划同时使用基本认证和 SAML 时,就可能出现这种情况。有关此配置的示例和更完整的解释,请参阅 SAML 文档中的运行多个认证域。
当您定义多个 HTTP 认证器时,请确保首先放置非质询认证器(例如 proxy
和 clientcert
),最后放置质询 HTTP 认证器。例如,在一个非质询 HTTP 基本认证后端与一个质询 SAML 后端配对的配置中,您可以在 HTTP 基本 authc
域中指定 order: 0
,并在 SAML 域中指定 order: 1
。
内部用户数据库
使用 HTTP 基本认证时,内部用户数据库存储内部用户,并包含其哈希密码和其他用户属性,例如角色。用户及其设置保存在 internal_users.yml
配置文件中。有关此文件的更多信息,请参阅安全配置文档中的internal_users.yml。