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 认证器时,请确保首先排列非质询性认证器(例如 proxyclientcert),最后排列质询性 HTTP 认证器。例如,在非质询性 HTTP 基本身份验证后端与质询性 SAML 后端配对的配置中,您可能在 HTTP 基本 authc 域中指定 order: 0,在 SAML 域中指定 order: 1

内部用户数据库

使用 HTTP 基本身份验证时,内部用户数据库存储内部用户及其哈希密码和其他用户属性(例如角色)。用户及其设置保存在 internal_users.yml 配置文件中。