3.2. 使用 LDAP 启用用户置备


当 Red Hat Build of Keycloak (RHBK)依赖于轻量级目录访问协议(LDAP)来解析用户和组时,您可以选择将 LDAP 中的用户和组直接置备到 Red Hat Developer Hub 软件目录,而不是使用 RHBK 置备机制。

先决条件

  • 您已使用 红帽构建的 Keycloak (RHBK)配置了身份验证
  • 您已收集所需的 LDAP 凭证:

    LDAP URL
    您的 LDAP 服务器 URL,如 ldaps://ds.example.net
    bind dn
    您的绑定可分辨名称,如 cn=admin,OU=Users,DC=rhdh,DC=test
    LDAP secret
    您的 LDAP 机密。
    建议:LDAP 证书和密钥

    要使用安全的 LDAP connexion (ldaps://):您分别将 LDAP 证书和密钥存储在 ldap_certs.pemldap_keys.pem 文件中。

    警告

    在 production 模式中,使用安全 LDAP connexion。

流程

  1. 通过将 LDAP_SECRET 环境变量添加到 Developer Hub secret,在 Developer Hub secret 中输入您的 LDAP 凭证。

    $ oc patch secret my-rhdh-secrets --patch '{"stringData": { "LDAP_SECRET": "<ldap_secret>" }}'
    Copy to Clipboard Toggle word wrap
    <ldap_secret>
    输入您的 LDAP secret。
  2. 建议: 要使用安全 LDAP 连接(ldaps://),请将 LDAP 证书和密钥文件添加到 {a-platform-generic} secret 中。

    $ oc create secret generic my-rhdh-ldap-secrets \
        --from-file=./ldap_certs.pem \
        --from-file=./ldap_keys.pem
    Copy to Clipboard Toggle word wrap
  3. dynamic-plugins.yaml 文件中启用 LDAP 目录供应商插件。

    plugins:
      - package: './dynamic-plugins/dist/backstage-plugin-catalog-backend-module-ldap-dynamic'
        disabled: false
    Copy to Clipboard Toggle word wrap
  4. 通过将 LDAP 目录供应商部分添加到 app-config.yaml 文件中,启用置备 GitHub 用户和组到 Developer Hub 软件目录中:

    1. 可选:通过删除其他目录供应商部分来删除其他目录供应商。
    2. 输入必填字段:

      catalog:
        providers:
          ldapOrg:
            default:
              target: ldaps://ds.example.net
              bind:
                dn: cn=admin,ou=Users,dc=rhdh
                secret: ${LDAP_SECRET}
              users:
                - dn: OU=Users,OU=RHDH Local,DC=rhdh,DC=test
                  options:
                    filter: (uid=*)
              groups:
                - dn: OU=Groups,OU=RHDH Local,DC=rhdh,DC=test
              schedule:
                frequency: PT1H
                timeout: PT15M
      Copy to Clipboard Toggle word wrap
      target
      输入您的 LDAP 服务器 URL,如 ldaps://ds.example.net
      bind

      输入您的服务帐户信息:

      dn
      输入您的服务帐户可分辨名称(DN),如 cn=admin,OU=Users,DC=rhdh,DC=test
      secret
      输入包含 LDAP secret 的变量名称 :${LDAP_SECRET}
      users

      输入有关如何查找用户的信息:

      dn
      输入包含用户信息的 DN。
      options
      filter
      输入您的过滤器,如 (uid swig ),以调配 RHDH 软件目录,仅有现有 uid 的用户。
      groups

      输入有关如何找到您的组的信息:

      dn
      输入包含组信息的 DN。
      调度

      输入您的调度信息:

      频率
      以 cron、ISO 持续时间或"human 持续时间"格式输入您的调度频率。
      timeout
      以 ISO 持续时间或"human duration"格式输入您的计划超时。
      initialDelay
      以 ISO 持续时间或"human duration"格式输入调度初始延迟。
    3. 可选: 要更改 Developer Hub 将 LDAP 用户字段映射到软件目录的方式,请输入可选 映射和 设置 字段。

      catalog:
        providers:
          ldapOrg:
            default:
              target: ldaps://ds.example.net
              bind:
                dn: cn=admin,ou=Users,dc=rhdh
                secret: ${LDAP_SECRET}
              users:
                - dn: OU=Users,OU=RHDH Local,DC=rhdh,DC=test
                  options:
                    filter: (uid=*)
                  map:
                    rdn: uid
                    name: uid
                    description: {}
                    displayName: cn
                    email: mail
                    picture: {}
                    memberOf: memberOf
                  set:
                    metadata.customField: 'hello'
              groups:
                - dn: OU=Groups,OU=RHDH Local,DC=rhdh,DC=test
              schedule:
                frequency: PT1H
                timeout: PT15M
      Copy to Clipboard Toggle word wrap
      rdn
      要更改默认值: uid,请输入每个条目的相对可分辨名称。
      name
      要更改默认值: uid,请输入 LDAP 字段来映射到 RHDH metadata.name 字段。
      description
      要设置值,请输入 LDAP 字段来映射到 RHDH metadata.description 字段。
      displayName
      要更改默认值: cn,请输入 LDAP 字段来映射到 RHDH metadata.displayName 字段。
      email
      要更改默认值: mail,请输入 LDAP 字段以映射到 RHDH spec.profile.email 字段。
      picture
      要设置值,请输入 LDAP 字段来映射到 RHDH spec.profile.picture 字段。
      memberOf
      要更改默认值: memberOf,请输入 LDAP 字段来映射到 RHDH spec.memberOf 字段。
      set
      要设置值,请输入硬编码的 JSON 以在 ingestion 后应用到实体,如 metadata.customField: 'hello'
    4. 可选: 要改变 Developer Hub 将 LDAP 组字段映射到软件目录的方式,请输入可选的 groups.maps 字段。

      catalog:
        providers:
          ldapOrg:
            default:
              target: ldaps://ds.example.net
              bind:
                dn: cn=admin,ou=Users,dc=rhdh
                secret: ${LDAP_SECRET}
              users:
                - dn: OU=Users,OU=RHDH Local,DC=rhdh,DC=test
                  options:
                    filter: (uid=*)
              groups:
                - dn: OU=Groups,OU=RHDH Local,DC=rhdh,DC=test
                  map:
                    rdn: uid
                    name: uid
                    description: {}
                    displayName: cn
                    email: mail
                    picture: {}
                    memberOf: memberOf
                    members: member
                    type: groupType
                  set:
                    metadata.customField: 'hello'
              schedule:
                frequency: PT1H
                timeout: PT15M
      Copy to Clipboard Toggle word wrap
      rdn
      要更改默认值: cn,请输入每个条目的相对可分辨名称。
      name
      要更改默认值: cn,请输入 LDAP 字段来映射到 RHDH metadata.name 字段。
      description
      要设置值,请输入 LDAP 字段来映射到 RHDH metadata.description 字段。
      displayName
      要更改默认值: cn,请输入 LDAP 字段来映射到 RHDH metadata.displayName 字段。
      email
      要更改默认值: mail,请输入 LDAP 字段以映射到 RHDH spec.profile.email 字段。
      picture
      要设置值,请输入 LDAP 字段来映射到 RHDH spec.profile.picture 字段。
      memberOf
      要更改默认值: memberOf,请输入 LDAP 字段来映射到 RHDH spec.memberOf 字段。
      成员
      要更改默认值: member,请输入 LDAP 字段来映射到 RHDH spec.children 字段。
      type
      要更改默认值: groupType,请输入 LDAP 字段来映射到 RHDH spec.type 字段。
      set
      要设置值,请输入硬编码的 JSON 以在 ingestion 后应用到实体,如 metadata.customField: 'hello'
    5. 建议: 要使用安全 LDAP 连接(ldaps://),请输入可选的 tls 字段。

      可选 tls 字段

      catalog:
        providers:
          ldapOrg:
            default:
              target: ldaps://ds.example.net
              bind:
                dn: cn=admin,ou=Users,dc=rhdh
                secret: ${LDAP_SECRET}
              users:
      ldapOrg:
        default:
          tls:
            rejectUnauthorized: true
            keys: '/path/to/keys.pem'
            certs: '/path/to/certs.pem'
      Copy to Clipboard Toggle word wrap

      rejectUnauthorized

      设置为 false 以允许自签名证书

      警告

      不建议在生产环境中使用这个选项。

      keys
      以 PEM 格式输入包含私钥的文件
      certs
      以 PEM 格式输入包含证书链的文件
    6. 可选:输入特定于供应商的属性的配置,为 LDAP 目录中的可分辨名称(DN)和通用唯一标识符(UUID)设置自定义属性名称。默认值由支持的每个供应商定义,并自动检测。

      catalog:
        providers:
          ldapOrg:
            default:
              vendor:
                dnAttributeName: customDN
                uuidAttributeName: customUUID
      Copy to Clipboard Toggle word wrap
      dnAttributeName
      输入包含条目的可分辨名称(DN)的属性名称。
      uuidAttributeName
      输入包含条目的通用唯一标识符(UUID)的属性名称。
    7. 可选:在 options 子部分输入低级别用户和组配置。

      catalog:
        providers:
          ldapOrg:
            default:
              target: ldaps://ds.example.net
              bind:
                dn: cn=admin,ou=Users,dc=rhdh
                secret: ${LDAP_SECRET}
              users:
                options:
                  scope: sub
                  filter: (uid=*)
                  attributes:
                    - cn
                    - uid
                    - description
                  paged:
                  pageSize: 500
              groups:
                options:
                  scope: sub
                  filter: (cn=*)
                  attributes:
                    - cn
                    - uid
                    - description
                  paged:
                    pageSize: 500
                    pagePause: true
      Copy to Clipboard Toggle word wrap
      scope

      要更改默认值: 一个,请输入在目录树中深度搜索的方式:

      • 仅用于搜索基本 DN 的基础。
      • 一个用于 在基本 DN 下搜索一个级别。
      • sub 用于搜索所有下级条目。
      filter

      要更改默认值: (objectclass swig),请输入您的 LDAP 过滤器。使用默认映射:

      • 对于用户,输入 (uid swig)以确保只同步具有有效 uid 字段的用户,因为没有 uid 的用户会导致错误,ingestion 会失败。
      • 对于组,输入 (cn swig)

        提示

        当您更改映射时,还要更新过滤器。

      属性
      要更改默认值:所有属性 ['*', '+'],请输入要从 LDAP 导入的属性名称的数组。
      paged

      输入一个值来启用页面的结果。

      pageSize
      输入一个值来设置结果页面大小,如 500
      pagePause
      输入 true 以告知客户端在达到页面限制时等待下一页的异步结果。
  5. 建议: 要使用安全 LDAP 连接(ldaps://),请编辑 Backstage 自定义资源,在 Developer Hub 部署中挂载 LDAP 证书和密钥文件。

    kind: Backstage
    spec:
      application:
        extraFiles:
          mountPath: /opt/ldap-secrets
          secrets:
            - name: my-rhdh-database-database-secrets
              key: ldap-certs.pem, ldap-keys.pem
    Copy to Clipboard Toggle word wrap

验证

  • 要验证用户和组置备,请检查控制台日志。

    成功同步示例:

    2025-10-15T20:45:49.072Z catalog info Read 4 LDAP users and 6 LDAP groups in 0.3 seconds. Committing... class="LdapOrgEntityProvider" taskId="LdapOrgEntityProvider:default:refresh" taskInstanceId="9bb48fd5-2f55-4096-9fd0-61cee6679952" trace_id="6a318e2eadba84e20df773948668aa4c" span_id="cbec568cb6e64985" trace_flags="01"
    2025-10-15T20:45:49.075Z catalog info Committed 4 LDAP users and 6 LDAP groups in 0.0 seconds. class="LdapOrgEntityProvider" taskId="LdapOrgEntityProvider:default:refresh" taskInstanceId="9bb48fd5-2f55-4096-9fd0-61cee6679952" trace_id="6a318e2eadba84e20df773948668aa4c" span_id="cbec568cb6e64985" trace_flags="01"
    Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部