本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

LDAP

概述

SUSE Observability 可以使用 LDAP 服务器(包括 AD)进行身份验证,并获取角色/组。这需要一个可供 SUSE Observability 访问的正在运行的 LDAP 服务器。

将检查 LDAP 主目录及所有子目录中的用户文件。SUSE Observability 配置中的绑定凭据用于在 LDAP 服务器上对 SUSE Observability 进行身份验证。身份验证后,SUSE Observability 会传递希望登录 SUSE Observability 的用户的顶级 LDAP 目录名称。

为 LDAP 配置 SUSE Observability

Kubernetes

要在 Kubernetes 上配置 SUSE Observability 以使用 LDAP 身份验证服务器进行身份验证,需要将 LDAP 详细信息和用户角色映射添加到文件 authentication.yaml 中。例如:

  • authentication.yaml

stackstate:
  authentication:
    ldap:
      host: sts-ldap
      port: 10389 # For most LDAP servers 389 for plain, 636 for ssl connections
      #ssl:
      #  sslType: ssl
      #  trustStore: <see below>
      #  trustCertificates <see below>
      bind:
        dn: "cn=admin,ou=employees,dc=acme,dc=com"
        password: "password"
      userQuery:
        parameters:
          - ou: employees
          - dc: acme
          - dc: com
        usernameKey: cn
        emailKey: mail
      groupQuery:
        parameters:
          - ou: groups
          - dc: acme
          - dc: com
        rolesKey: cn
        groupMemberKey: member
        # to return all nested groups, use:
        # groupMemberKey: "member:1.2.840.113556.1.4.1941:"

    # map the groups from LDAP to the
    # standard subjects in SUSE Observability (guest, powerUser and admin)
    roles:
      guest: ["ldap-guest-role-for-stackstate"]
      powerUser: ["ldap-power-user-role-for-stackstate"]
      admin: ["ldap-admin-role-for-stackstate"]

按照以下步骤配置 SUSE Observability 以使用 LDAP 进行身份验证:

  1. authentication.yaml 中 - 添加 LDAP 详细信息(请参见上面的示例):

    • host - LDAP 服务器的主机名。

    • port - LDAP 服务器侦听的端口。

    • sslType - 可选。LDAP 安全连接的类型 sslstartTls。如果使用普通 LDAP 连接,则省略。

    • trustCertificates - 可选,SSL 的证书文件。支持 PEM、DER 和 PKCS7 格式。

    • trustStore - 可选,Java 信任存储文件用于 SSL。如果同时指定 trustCertificatestrustStore,则 trustCertificatesPath 优先。

    • bind - 可选,用于在 LDAP 服务器不支持匿名 LDAP 搜索时对 SUSE Observability 进行身份验证。

    • 用户查询参数和组查询参数 - 其中的参数集对应于您的 LDAP 基础 DN,用户和组可以在此找到。第一个用于在 SUSE Observability 中验证用户,而第二个用于检索该用户的组,以确定用户是管理员、普通用户还是访客。

    • 用户名键 - 存储用户名的属性名称,值与登录屏幕上提供的用户名进行匹配。

    • 电子邮件键 - 在 SUSE Observability 中用作电子邮件地址的属性名称。

    • 角色键 - 存储组名称的属性名称。

    • 组成员键 - 指示用户是否是组成员的属性名称。构造的 LDAP 过滤器遵循此模式:<groupMemberKey>=<user.dn>,ou=groups,dc=acme,dc=com。要返回所有嵌套组,请使用 groupMemberKey: "member:1.2.840.113556.1.4.1941:"

  2. authentication.yaml - 将 LDAP 中的用户角色映射到正确的 SUSE Observability 主体(请参见上面的示例):

  3. 将文件 authentication.yaml 与 SUSE Observability 安装说明中的 values.yaml 一起存储。

  4. 运行 Helm 升级以应用更改。如果您使用 SSL 和自定义证书,则在连接到 LDAP 时应使用的二进制证书文件应从命令行设置,请使用 使用自定义证书的 SSL 下的命令:

helm upgrade \
  --install \
  --namespace suse-observability \
  --values values.yaml \
  --values authentication.yaml \
suse-observability \
suse-observability/suse-observability

trustCertificates

helm upgrade \
  --install \
  --namespace suse-observability \
  --values values.yaml \
  --values authentication.yaml \
  --set-file stackstate.authentication.ldap.ssl.trustCertificates=./ldap-certificate.pem \
suse-observability \
suse-observability/suse-observability

trustStore

helm upgrade \
  --install \
  --namespace suse-observability \
  --values values.yaml \
  --values authentication.yaml \
  --set-file stackstate.authentication.ldap.ssl.trustStore=./ldap-cacerts \
suse-observability \
suse-observability/suse-observability

注意:

  • 第一次运行 helm 升级命令将导致 pods 重启,这可能会导致短暂的可用性中断。

  • 在每次 helm upgrade 运行中包含 authentication.yaml

  • 身份验证配置作为 Kubernetes 秘密存储。

使用外部 Secret

当 LDAP 密码应来自外部 Secret 时,请遵循这些步骤,但填写以下数据:

kind: Secret
metadata:
   name: "<custom-secret-name>"
type: Opaque
data:
  ldap_password: <base64 of ldap password>