Link Search Menu Expand Document Documentation Menu

Kerberos

Kerberos 是一种强大而安全的用户身份验证方法,通过发放“票据”进行安全身份验证,从而防止密码在互联网上传输。

为了使用 Kerberos 身份验证,您必须在 opensearch.ymlconfig.yml 中设置以下配置。

OpenSearch 节点配置

opensearch.yml 中,定义以下设置

plugins.security.kerberos.krb5_filepath: '/etc/krb5.conf'
plugins.security.kerberos.acceptor_keytab_filepath: 'opensearch_keytab.tab'
plugins.security.kerberos.acceptor_principal: 'HTTP/localhost'
名称 描述
krb5_filepath 您的 Kerberos 配置文件路径。此文件包含与您的 Kerberos 安装相关的各种设置,例如 Kerberos 密钥分发中心 (KDC) 的 realm 名称、hostnames 和端口。
acceptor_keytab_filepath keytab 文件路径,其中包含安全插件用于通过 Kerberos 发出请求的主体。
acceptor_principal 安全插件用于通过 Kerberos 发出请求的主体。此值必须存在于 keytab 文件中。

由于安全限制,keytab 文件必须放置在 config 或其子目录中,并且 opensearch.yml 中的路径必须是相对路径,而不是绝对路径。

集群安全配置

以下示例显示了 config.yml 中典型的 Kerberos 身份验证域

kerberos_auth_domain:
  enabled: true
  order: 1
  http_authenticator:
    type: kerberos
    challenge: true
    config:
      krb_debug: false
      strip_realm_from_principal: true
  authentication_backend:
    type: noop

在使用浏览器进行 HTTP 级别身份验证时,Kerberos 身份验证通过 SPNEGO 实现。Kerberos/SPNEGO 实现因您的浏览器和操作系统而异。在决定是否需要将 challenge 标志设置为 truefalse 时,这一点很重要。

HTTP 基本身份验证一样,此标志决定了在 HTTP 请求中未找到 Authorization 头部或该头部不等于 negotiate 时,安全插件应如何响应。

如果设置为 true,安全插件将发送状态码 401 且 WWW-Authenticate 头部设置为 negotiate 的响应。这会告诉客户端(浏览器)重新发送带有已设置的 Authorization 头的请求。如果设置为 false,安全插件无法从请求中提取凭据,并且身份验证将失败。因此,仅当 Kerberos 凭据在初始请求中发送时,将 challenge 设置为 false 才有意义。

名称 描述
krb_debug 顾名思义,将其设置为 true 会将 Kerberos 特定的调试消息输出到 stdout。如果您在 Kerberos 集成中遇到问题,请使用此设置。默认值为 false
strip_realm_from_principal 当设置为 true 时,安全插件会从用户名中删除领域信息。默认值:true

由于 Kerberos/SPNEGO 在 HTTP 级别对用户进行身份验证,因此不需要额外的 authentication_backend。将此值设置为 noop

剩余 350 字符

有问题?

想贡献?