HTTP 基本身份验证
HTTP 基本身份验证提供了一个简单的质询-响应过程,用于获取对 UDB-SX 及其资源的访问权限,提示您使用用户名和密码登录。您可以在配置的 http_authenticator 部分通过将 type 指定为 basic 来启用 HTTP 基本身份验证,如下例所示:
_meta:
type: "config"
config_version: 2
config:
dynamic:
authc:
basic_internal_auth_domain:
description: "使用 HTTP 基本身份验证针对内部用户数据库进行身份验证"
http_enabled: true
transport_enabled: true
order: 1
http_authenticator:
type: basic
challenge: true
authentication_backend:
type: internal
_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,除非您计划将其他身份验证后端与 HTTP 基本身份验证一起使用,否则在 config.yml 中不需要进一步的配置。
质询设置
在大多数情况下,将 challenge 设置为 true 适用于基本身份验证。此设置定义了当 HTTP 标头中的 Authorization 字段未指定时 Security 插件的行为。默认情况下,该设置为 true。
当 challenge 设置为 true 时,Security 插件会向客户端发送状态为 UNAUTHORIZED (401) 的响应。如果客户端使用浏览器访问集群,则会触发身份验证对话框,提示用户输入用户名和密码。当 HTTP 基本身份验证是唯一使用的后端时,这是一种常见的配置。
当 challenge 设置为 false 且请求中未指定 Authorization 标头时,Security 插件不会向客户端发送 WWW-Authenticate 响应,并且身份验证失败。这种配置通常用于当您在配置的身份验证域中包含多个质询性的 http_authenticator 设置时。例如,当您计划同时使用基本身份验证和 SAML 时可能就是这种情况。
当您定义多个 HTTP 认证器时,请确保首先排列非质询性认证器(例如 proxy 和 clientcert),最后排列质询性 HTTP 认证器。例如,在非质询性 HTTP 基本身份验证后端与质询性 SAML 后端配对的配置中,您可能在 HTTP 基本 authc 域中指定 order: 0,在 SAML 域中指定 order: 1。
内部用户数据库
使用 HTTP 基本身份验证时,内部用户数据库存储内部用户及其哈希密码和其他用户属性(例如角色)。用户及其设置保存在 internal_users.yml 配置文件中。