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.pem和ldap_keys.pem文件中。警告在 production 模式中,使用安全 LDAP connexion。
流程
通过将
LDAP_SECRET环境变量添加到 Developer Hub secret,在 Developer Hub secret 中输入您的 LDAP 凭证。oc patch secret my-rhdh-secrets --patch '{"stringData": { "LDAP_SECRET": "<ldap_secret>" }}'$ oc patch secret my-rhdh-secrets --patch '{"stringData": { "LDAP_SECRET": "<ldap_secret>" }}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow - <ldap_secret>
- 输入您的 LDAP secret。
建议: 要使用安全 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$ oc create secret generic my-rhdh-ldap-secrets \ --from-file=./ldap_certs.pem \ --from-file=./ldap_keys.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
dynamic-plugins.yaml文件中启用 LDAP 目录供应商插件。plugins: - package: './dynamic-plugins/dist/backstage-plugin-catalog-backend-module-ldap-dynamic' disabled: falseplugins: - package: './dynamic-plugins/dist/backstage-plugin-catalog-backend-module-ldap-dynamic' disabled: falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将 LDAP 目录供应商部分添加到
app-config.yaml文件中,启用置备 GitHub 用户和组到 Developer Hub 软件目录中:- 可选:通过删除其他目录供应商部分来删除其他目录供应商。
输入必填字段:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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。
optionsfilter-
输入您的过滤器,如
(uid swig),以调配 RHDH 软件目录,仅有现有uid的用户。
groups输入有关如何找到您的组的信息:
dn- 输入包含组信息的 DN。
调度输入您的调度信息:
频率- 以 cron、ISO 持续时间或"human 持续时间"格式输入您的调度频率。
timeout- 以 ISO 持续时间或"human duration"格式输入您的计划超时。
initialDelay- 以 ISO 持续时间或"human duration"格式输入调度初始延迟。
可选: 要更改 Developer Hub 将 LDAP 用户字段映射到软件目录的方式,请输入可选
映射和设置字段。Copy to Clipboard Copied! Toggle word wrap Toggle overflow rdn-
要更改默认值:
uid,请输入每个条目的相对可分辨名称。 name-
要更改默认值:
uid,请输入 LDAP 字段来映射到 RHDHmetadata.name字段。 description-
要设置值,请输入 LDAP 字段来映射到 RHDH
metadata.description字段。 displayName-
要更改默认值:
cn,请输入 LDAP 字段来映射到 RHDHmetadata.displayName字段。 email-
要更改默认值:
mail,请输入 LDAP 字段以映射到 RHDHspec.profile.email字段。 picture-
要设置值,请输入 LDAP 字段来映射到 RHDH
spec.profile.picture字段。 memberOf-
要更改默认值:
memberOf,请输入 LDAP 字段来映射到 RHDHspec.memberOf字段。 set-
要设置值,请输入硬编码的 JSON 以在 ingestion 后应用到实体,如
metadata.customField: 'hello'。
可选: 要改变 Developer Hub 将 LDAP 组字段映射到软件目录的方式,请输入可选的
groups.maps字段。Copy to Clipboard Copied! Toggle word wrap Toggle overflow rdn-
要更改默认值:
cn,请输入每个条目的相对可分辨名称。 name-
要更改默认值:
cn,请输入 LDAP 字段来映射到 RHDHmetadata.name字段。 description-
要设置值,请输入 LDAP 字段来映射到 RHDH
metadata.description字段。 displayName-
要更改默认值:
cn,请输入 LDAP 字段来映射到 RHDHmetadata.displayName字段。 email-
要更改默认值:
mail,请输入 LDAP 字段以映射到 RHDHspec.profile.email字段。 picture-
要设置值,请输入 LDAP 字段来映射到 RHDH
spec.profile.picture字段。 memberOf-
要更改默认值:
memberOf,请输入 LDAP 字段来映射到 RHDHspec.memberOf字段。 成员-
要更改默认值:
member,请输入 LDAP 字段来映射到 RHDHspec.children字段。 type-
要更改默认值:
groupType,请输入 LDAP 字段来映射到 RHDHspec.type字段。 set-
要设置值,请输入硬编码的 JSON 以在 ingestion 后应用到实体,如
metadata.customField: 'hello'。
建议: 要使用安全 LDAP 连接(
ldaps://),请输入可选的tls字段。可选
tls字段Copy to Clipboard Copied! Toggle word wrap Toggle overflow rejectUnauthorized设置为
false以允许自签名证书警告不建议在生产环境中使用这个选项。
keys- 以 PEM 格式输入包含私钥的文件
certs- 以 PEM 格式输入包含证书链的文件
可选:输入特定于供应商的属性的配置,为 LDAP 目录中的可分辨名称(DN)和通用唯一标识符(UUID)设置自定义属性名称。默认值由支持的每个供应商定义,并自动检测。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dnAttributeName- 输入包含条目的可分辨名称(DN)的属性名称。
uuidAttributeName- 输入包含条目的通用唯一标识符(UUID)的属性名称。
可选:在
options子部分输入低级别用户和组配置。Copy to Clipboard Copied! Toggle word wrap Toggle overflow scope要更改默认值:
一个,请输入在目录树中深度搜索的方式:-
仅用于搜索基本 DN 的基础。
-
一个用于在基本 DN 下搜索一个级别。 -
sub用于搜索所有下级条目。
-
仅用于搜索基本 DN 的基础。
filter要更改默认值:
(objectclass swig),请输入您的 LDAP 过滤器。使用默认映射:-
对于用户,输入
(uidswig)以确保只同步具有有效 uid 字段的用户,因为没有 uid 的用户会导致错误,ingestion 会失败。 对于组,输入
(cn swig)提示当您更改映射时,还要更新过滤器。
-
对于用户,输入
属性-
要更改默认值:所有属性
['*', '+'],请输入要从 LDAP 导入的属性名称的数组。 paged输入一个值来启用页面的结果。
pageSize-
输入一个值来设置结果页面大小,如
500。 pagePause-
输入
true以告知客户端在达到页面限制时等待下一页的异步结果。
建议: 要使用安全 LDAP 连接(
ldaps://),请编辑 Backstage 自定义资源,在 Developer Hub 部署中挂载 LDAP 证书和密钥文件。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要验证用户和组置备,请检查控制台日志。
成功同步示例:
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"
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 Copied! Toggle word wrap Toggle overflow