附录:【外置】OpenLDAP 原生安装环境实操
# 原生安装一套可接入的 OpenLDAP
已有企业 LDAP 时直接阅读外置 LDAP 接入与验证。本附录只用于准备一套原生 systemd OpenLDAP 实验环境,保留安装、TLS、LDIF、SSSD 和验收命令。
本文使用下面这组示例:
| 配置项 | 示例值 |
|---|---|
| LDAP 主机 | dev1.test.com |
| Base DN | dc=extlab,dc=test |
| 用户目录 | ou=users,dc=extlab,dc=test |
| 用户组目录 | ou=groups,dc=extlab,dc=test |
| 只读 Bind DN | uid=extlab-bind,ou=system,dc=extlab,dc=test |
| 平台管理员用户 | extlab-enabled |
| 平台管理员组 | extlab-ambari-admins |
| LDAP 端口 | 11389 |
| LDAPS 端口 | 11636 |
| 独立目录 | /data/extlab/ldap |
示例使用非标准端口,是为了避免覆盖主机上已有的 389/636 服务。如果独立主机没有端口冲突,可以改回标准端口。
注意
这是一套单节点外部 LDAP,适合功能验证和接入联调。生产环境还要规划多节点复制、统一证书、负载均衡、备份恢复、容量、监控和变更权限。
# 准备主机和软件包
我会先确认所有 Ambari Server、Agent 和 Ranger Usersync 节点都能解析 LDAP 的 FQDN,并且节点之间时钟一致。TLS 证书的 SAN 也必须包含接入时填写的 FQDN。
sudo dnf install -y openldap openldap-servers openldap-clients openssl
sudo dnf install -y openldap openldap-servers openldap-clients openssl
sudo apt update
sudo apt install -y slapd ldap-utils openssl
2
// Make sure to add code blocks to your code group
安装后检查命令和端口占用:
command -v slapd slapadd slaptest slappasswd ldapsearch
sudo ss -lntup | grep -E ':(11389|11636)\b' || true
2
后续配置以 Kylin、Rocky 和 RHEL 的路径为例。Ubuntu 通常把 schema 放在 /etc/ldap/schema,模块放在 /usr/lib/ldap;写入配置前要用 find 核对真实路径。部分发行版安装包后会自动启动默认 slapd,先确认它是否承载已有目录;只有确定它是刚安装的空实例时,才停用默认服务,不能直接删除或覆盖已有数据库。

除了确认软件包,还要看独立目录的所有者和权限。数据库、密码文件和私钥目录不应允许普通用户读取。
# 建立独立目录
这里不覆盖系统默认的 /etc/openldap 和 /var/lib/ldap,配置、数据库、证书、日志和密码文件都放进独立目录。这样既不会干扰主机上的其他目录实例,也便于单独备份和停启。
sudo install -d -m 700 \
/data/extlab/ldap/db \
/data/extlab/ldap/etc \
/data/extlab/ldap/log \
/data/extlab/ldap/run \
/data/extlab/ldap/certs \
/data/extlab/ldap/secrets \
/data/extlab/ldap/seed \
/data/extlab/ldap/systemd
2
3
4
5
6
7
8
9
先准备两个不同的随机密码。管理员密码只用于目录维护,平台使用权限更小的只读 Bind 账号。
sudo -i
umask 077
openssl rand -base64 30 > /data/extlab/ldap/secrets/admin.pass
openssl rand -base64 30 > /data/extlab/ldap/secrets/bind.pass
openssl rand -base64 30 > /data/extlab/ldap/secrets/sssd.pass
openssl rand -base64 30 > /data/extlab/ldap/secrets/enabled.pass
slappasswd -T /data/extlab/ldap/secrets/admin.pass \
> /data/extlab/ldap/secrets/admin.hash
slappasswd -T /data/extlab/ldap/secrets/bind.pass \
> /data/extlab/ldap/secrets/bind.hash
slappasswd -T /data/extlab/ldap/secrets/sssd.pass \
> /data/extlab/ldap/secrets/sssd.hash
slappasswd -T /data/extlab/ldap/secrets/enabled.pass \
> /data/extlab/ldap/secrets/enabled.hash
2
3
4
5
6
7
8
9
10
11
12
13
14
15
警告
不要把密码、密码哈希、私钥和数据库文件写进文章、代码仓库或普通工单附件。截图前也要遮住终端历史、文件内容和访问地址中的敏感部分。
# 签发 LDAPS 证书
测试环境可以建立一套独立 CA。生产环境建议使用企业 CA,并把证书轮换、吊销和信任分发纳入统一管理。
创建 CA:
cd /data/extlab/ldap
openssl genrsa -out secrets/ca.key 4096
openssl req -x509 -new -sha256 -days 3650 \
-key secrets/ca.key \
-out certs/ca.crt \
-subj '/CN=EXTLAB LDAP Test CA/O=EXTLAB'
2
3
4
5
6
7
为 dev1.test.com 签发服务端证书。接入页面填写哪个 FQDN,SAN 就必须包含哪个名称。
openssl genrsa -out secrets/dev1.key 3072
openssl req -new \
-key secrets/dev1.key \
-out certs/dev1.csr \
-subj '/CN=dev1.test.com/O=EXTLAB'
cat > etc/dev1.ext <<'EOF'
basicConstraints=critical,CA:FALSE
keyUsage=critical,digitalSignature,keyEncipherment
extendedKeyUsage=serverAuth
subjectAltName=DNS:dev1.test.com,DNS:dev1
EOF
openssl x509 -req -sha256 -days 825 \
-in certs/dev1.csr \
-CA certs/ca.crt \
-CAkey secrets/ca.key \
-CAcreateserial \
-out certs/dev1.crt \
-extfile etc/dev1.ext
chmod 600 secrets/*.key
chmod 644 certs/ca.crt certs/dev1.crt
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
检查名称和有效期:
openssl verify -CAfile certs/ca.crt certs/dev1.crt
openssl x509 -in certs/dev1.crt \
-noout -subject -issuer -dates -ext subjectAltName
2
3
# 写入 slapd 配置
创建 /data/extlab/ldap/etc/slapd.conf。下面保留了用户组反向关系、嵌套组和密码策略需要的模块。
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/ppolicy.schema
pidfile /data/extlab/ldap/run/slapd.pid
argsfile /data/extlab/ldap/run/slapd.args
loglevel stats
TLSCACertificateFile /data/extlab/ldap/certs/ca.crt
TLSCertificateFile /data/extlab/ldap/certs/dev1.crt
TLSCertificateKeyFile /data/extlab/ldap/secrets/dev1.key
TLSVerifyClient never
modulepath /usr/lib64/openldap
moduleload memberof.la
moduleload ppolicy.la
backend mdb
database mdb
maxsize 1073741824
suffix "dc=extlab,dc=test"
rootdn "cn=admin,dc=extlab,dc=test"
rootpw {SSHA}请替换为admin.hash中的完整内容
directory /data/extlab/ldap/db
index objectClass eq
index uid,cn eq,sub
index member,memberOf eq
access to attrs=userPassword
by self write
by anonymous auth
by * none
access to *
by dn.exact="uid=extlab-bind,ou=system,dc=extlab,dc=test" read
by users read
by * none
overlay memberof
memberof-group-oc groupOfNames
memberof-member-ad member
memberof-memberof-ad memberOf
memberof-refint TRUE
overlay ppolicy
ppolicy_default "cn=default,ou=policies,dc=extlab,dc=test"
ppolicy_use_lockout
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
使用 root-only 变量替换 rootpw 占位内容,不把哈希打印到终端:
sudo -i
LDAP_ADMIN_HASH=$(</data/extlab/ldap/secrets/admin.hash)
sed -i "s|{SSHA}请替换为admin.hash中的完整内容|${LDAP_ADMIN_HASH}|" \
/data/extlab/ldap/etc/slapd.conf
unset LDAP_ADMIN_HASH
chmod 600 /data/extlab/ldap/etc/slapd.conf
2
3
4
5
6
如果系统模块目录不是 /usr/lib64/openldap,用下面命令找到 memberof.la 的真实路径再修改 modulepath:
sudo find /usr/lib /usr/lib64 -name memberof.la -print

这里要同时核对证书 SAN、Base DN、数据库路径和 TLS 文件。只检查证书存在还不够,证书名称必须与平台使用的 FQDN 一致。
# 初始化目录数据
创建 /data/extlab/ldap/seed/base.ldif。把 Bind 用户的密码占位符替换为 bind.hash 的完整内容。
dn: dc=extlab,dc=test
objectClass: top
objectClass: dcObject
objectClass: organization
dc: extlab
o: EXTLAB Test Directory
dn: ou=system,dc=extlab,dc=test
objectClass: top
objectClass: organizationalUnit
ou: system
dn: uid=extlab-bind,ou=system,dc=extlab,dc=test
objectClass: top
objectClass: account
objectClass: simpleSecurityObject
uid: extlab-bind
description: Read-only platform bind identity
userPassword: {SSHA}请替换为bind.hash中的完整内容
dn: uid=extlab-sssd,ou=system,dc=extlab,dc=test
objectClass: top
objectClass: account
objectClass: simpleSecurityObject
uid: extlab-sssd
description: Read-only cluster node identity lookup
userPassword: {SSHA}请替换为sssd.hash中的完整内容
dn: ou=policies,dc=extlab,dc=test
objectClass: top
objectClass: organizationalUnit
ou: policies
dn: cn=default,ou=policies,dc=extlab,dc=test
objectClass: top
objectClass: device
objectClass: pwdPolicy
cn: default
pwdAttribute: userPassword
pwdMinAge: 0
pwdMaxAge: 0
pwdInHistory: 5
pwdCheckQuality: 1
pwdMinLength: 12
pwdLockout: TRUE
pwdLockoutDuration: 0
pwdMaxFailure: 5
pwdFailureCountInterval: 0
pwdMustChange: FALSE
pwdAllowUserChange: TRUE
pwdSafeModify: FALSE
dn: ou=users,dc=extlab,dc=test
objectClass: top
objectClass: organizationalUnit
ou: users
dn: uid=extlab-enabled,ou=users,dc=extlab,dc=test
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount
uid: extlab-enabled
cn: EXTLAB Enabled
sn: Enabled
uidNumber: 23001
gidNumber: 23001
homeDirectory: /home/extlab-enabled
userPassword: {SSHA}请替换为enabled.hash中的完整内容
dn: ou=groups,dc=extlab,dc=test
objectClass: top
objectClass: organizationalUnit
ou: groups
dn: cn=extlab-readers,ou=groups,dc=extlab,dc=test
objectClass: top
objectClass: groupOfNames
objectClass: extensibleObject
cn: extlab-readers
gidNumber: 23001
member: uid=extlab-enabled,ou=users,dc=extlab,dc=test
dn: cn=extlab-nested-admins,ou=groups,dc=extlab,dc=test
objectClass: top
objectClass: groupOfNames
objectClass: extensibleObject
cn: extlab-nested-admins
gidNumber: 23002
member: cn=extlab-readers,ou=groups,dc=extlab,dc=test
dn: cn=extlab-ambari-admins,ou=groups,dc=extlab,dc=test
objectClass: top
objectClass: groupOfNames
objectClass: extensibleObject
cn: extlab-ambari-admins
gidNumber: 23003
description: Ambari Plus platform administrators
member: uid=extlab-enabled,ou=users,dc=extlab,dc=test
member: cn=extlab-nested-admins,ou=groups,dc=extlab,dc=test
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
extlab-enabled 和 extlab-ambari-admins 必须先存在于外部 LDAP。Ambari Plus 只验证并记录它们,不会拿目录管理员密码去代替企业创建用户或用户组。
同样在导入前替换 Bind 用户和测试用户的密码哈希:
sudo -i
LDAP_BIND_HASH=$(</data/extlab/ldap/secrets/bind.hash)
LDAP_SSSD_HASH=$(</data/extlab/ldap/secrets/sssd.hash)
LDAP_ENABLED_HASH=$(</data/extlab/ldap/secrets/enabled.hash)
sed -i "s|{SSHA}请替换为bind.hash中的完整内容|${LDAP_BIND_HASH}|" \
/data/extlab/ldap/seed/base.ldif
sed -i "s|{SSHA}请替换为sssd.hash中的完整内容|${LDAP_SSSD_HASH}|" \
/data/extlab/ldap/seed/base.ldif
sed -i "s|{SSHA}请替换为enabled.hash中的完整内容|${LDAP_ENABLED_HASH}|" \
/data/extlab/ldap/seed/base.ldif
unset LDAP_BIND_HASH LDAP_SSSD_HASH LDAP_ENABLED_HASH
chmod 600 /data/extlab/ldap/seed/base.ldif
2
3
4
5
6
7
8
9
10
11
12
13
14
检查配置并导入数据库:
sudo slaptest -u -f /data/extlab/ldap/etc/slapd.conf
sudo slapadd -f /data/extlab/ldap/etc/slapd.conf \
-l /data/extlab/ldap/seed/base.ldif
sudo chown -R root:root /data/extlab/ldap
sudo chmod 700 /data/extlab/ldap/{db,etc,log,run,secrets,seed,systemd}
2
3
4
5
# 使用独立 systemd 服务
创建 /data/extlab/ldap/systemd/extlab-slapd.service。示例中的 192.0.2.10 是文档专用地址,部署时必须替换成 LDAP 主机的真实内网 IP,不要直接监听公网地址。
[Unit]
Description=EXTLAB isolated OpenLDAP provider
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStartPre=/usr/sbin/slaptest -u -f /data/extlab/ldap/etc/slapd.conf
ExecStart=/usr/sbin/slapd -d 0 -f /data/extlab/ldap/etc/slapd.conf -h "ldap://192.0.2.10:11389/ ldaps://192.0.2.10:11636/"
Restart=on-failure
RestartSec=3
UMask=0077
NoNewPrivileges=yes
PrivateTmp=yes
ProtectHome=yes
ProtectSystem=strict
ReadWritePaths=/data/extlab/ldap
StandardOutput=append:/data/extlab/ldap/log/slapd-stdout.log
StandardError=append:/data/extlab/ldap/log/slapd-stderr.log
[Install]
WantedBy=multi-user.target
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
安装并启动:
sudo install -m 0644 \
/data/extlab/ldap/systemd/extlab-slapd.service \
/etc/systemd/system/extlab-slapd.service
sudo systemctl daemon-reload
sudo systemctl enable --now extlab-slapd.service
sudo systemctl --no-pager --full status extlab-slapd.service
sudo ss -lntup | grep -E ':(11389|11636)\b'
2
3
4
5
6
7
8

截图中的监听地址做了脱敏处理。实际服务绑定到专用内网 IP,防火墙只向 Ambari Server、Agent 和目录消费者开放端口,不直接向公网开放 LDAP。
# 从集群节点验证 LDAPS
先把 CA 证书安全分发到一台集群节点,例如 /etc/openldap/certs/extlab-ca.crt,再验证证书、Bind 和查询。
openssl s_client \
-connect dev1.test.com:11636 \
-servername dev1.test.com \
-CAfile /etc/openldap/certs/extlab-ca.crt \
-verify_return_error </dev/null
2
3
4
5
export LDAPTLS_CACERT=/etc/openldap/certs/extlab-ca.crt
ldapwhoami -x \
-H ldaps://dev1.test.com:11636 \
-D 'uid=extlab-bind,ou=system,dc=extlab,dc=test' -W
ldapsearch -LLL -x \
-H ldaps://dev1.test.com:11636 \
-D 'uid=extlab-bind,ou=system,dc=extlab,dc=test' -W \
-b 'dc=extlab,dc=test' \
'(|(uid=extlab-enabled)(cn=extlab-readers)(cn=extlab-nested-admins)(cn=extlab-ambari-admins))' \
dn uid cn member
2
3
4
5
6
7
8
9
10
11
12

预期能查到用户、直属组、嵌套组和平台管理员组。只看到端口监听,还不能证明用户密码、Bind 权限和目录结构正确。
继续用业务用户做一次真实认证:
ldapwhoami -x \
-H ldaps://dev1.test.com:11636 \
-D 'uid=extlab-enabled,ou=users,dc=extlab,dc=test' -W
2
3
最后确认平台 Bind 账号没有写权限。下面操作预期返回 Insufficient access (50),目标条目不会被修改:
cat <<'EOF' | ldapmodify -x \
-H ldaps://dev1.test.com:11636 \
-D 'uid=extlab-bind,ou=system,dc=extlab,dc=test' -W
dn: uid=extlab-enabled,ou=users,dc=extlab,dc=test
changetype: modify
replace: description
description: should-not-be-written
EOF
2
3
4
5
6
7
8

# 让 Hadoop 节点识别目录用户
LDAP 查询成功只证明目录可用。Hive doAs、YARN 容器和 Kyuubi 还要求每个集群节点都能通过 NSS 解析同一个用户。我在测试环境使用 SSSD;企业已有 winbind、nslcd 或统一主机入域方案时可以继续沿用,只要最终的 getent 结果一致。
每个节点安装客户端并放置 CA:
sudo dnf install -y sssd sssd-ldap sssd-tools openldap-clients
sudo install -d -m 755 /etc/openldap/certs
sudo install -m 644 extlab-ca.crt /etc/openldap/certs/extlab-ca.crt
2
3
sudo apt update
sudo apt install -y sssd-ldap sssd-tools ldap-utils
sudo install -d -m 755 /etc/ldap/certs
sudo install -m 644 extlab-ca.crt /etc/ldap/certs/extlab-ca.crt
2
3
4
// Make sure to add code blocks to your code group
创建 root-only 的 /etc/sssd/sssd.conf。这里先只写 Bind DN,不把 extlab-sssd 的密码直接放进模板、Git、命令行参数或截图;密码会在下一步通过标准工具写成 SSSD 可读取的混淆凭据。
[sssd]
config_file_version = 2
services = nss, pam
domains = EXTLAB
[nss]
filter_users = root,hdfs,yarn,mapred,hive,spark,kyuubi,hue,knox,ranger
override_homedir = /home/%u
default_shell = /bin/bash
[domain/EXTLAB]
id_provider = ldap
auth_provider = ldap
ldap_uri = ldaps://dev1.test.com:11636
ldap_search_base = dc=extlab,dc=test
ldap_user_search_base = ou=users,dc=extlab,dc=test
ldap_group_search_base = ou=groups,dc=extlab,dc=test
ldap_schema = rfc2307bis
ldap_user_object_class = posixAccount
ldap_user_name = uid
ldap_user_uid_number = uidNumber
ldap_user_gid_number = gidNumber
ldap_user_home_directory = homeDirectory
ldap_group_object_class = groupOfNames
ldap_group_name = cn
ldap_group_gid_number = gidNumber
ldap_group_member = member
ldap_id_mapping = false
ldap_tls_reqcert = demand
ldap_tls_cacert = /etc/openldap/certs/extlab-ca.crt
ldap_default_bind_dn = uid=extlab-sssd,ou=system,dc=extlab,dc=test
cache_credentials = false
enumerate = false
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Ubuntu 节点把 ldap_tls_cacert 改成实际的 /etc/ldap/certs/extlab-ca.crt。然后设置权限,创建配置片段和运行目录,再从 root-only 的密码文件写入凭据。sss_obfuscate 从标准输入读取一整行,因此密码文件末尾要保留换行符。
sudo chown root:root /etc/sssd/sssd.conf
sudo chmod 600 /etc/sssd/sssd.conf
sudo install -d -m 755 /etc/sssd/conf.d
# 某些系统在软件包已经安装、运行目录却被清理后不会自动重建这些目录。
sudo install -d -m 755 \
/var/lib/sss /var/lib/sss/db /var/lib/sss/mc \
/var/lib/sss/pipes /var/lib/sss/pubconf /var/log/sssd
sudo install -d -m 700 /var/lib/sss/pipes/private
# /root/extlab-sssd.pass 由安全渠道临时分发,文件内容只有一行密码并以换行结尾。
sudo sh -c 'cat /root/extlab-sssd.pass | sss_obfuscate -s -d EXTLAB'
sudo rm -f /root/extlab-sssd.pass
2
3
4
5
6
7
8
9
10
11
12
13
sss_obfuscate 不是高强度密钥保险库,但它避免把可直接复制的明文密码留在配置文件中。生产环境还应限制 root 权限、缩小 Bind 账号 ACL,并结合企业现有的密钥分发方案。
最后确认 /etc/nsswitch.conf 的 passwd、group 行都包含 sss,再启动服务:
sudo sssctl config-check
sudo systemctl enable --now sssd
sudo sss_cache -E
getent passwd extlab-enabled
id extlab-enabled
getent group extlab-ambari-admins
2
3
4
5
6
7
如果 sssd 报 No such file or directory、退出码 7,先检查 /var/lib/sss/db、/var/lib/sss/pipes/private 和 /var/log/sssd 是否存在,再重跑上面的目录创建命令。若 ldapwhoami 使用同一账号可以成功,而 SSSD 日志仍提示 Invalid credentials,不要反复把明文密码贴进配置;应重新确认密码文件末尾的换行符,并再次执行 sss_obfuscate -s -d EXTLAB。
三台节点都要返回相同的 UID、GID 和用户组。完成后,在 Ambari Plus 安装 Hive、Hue 或 Kyuubi 的配置页点击 检查节点用户映射,输入 extlab-enabled;平台会再次逐节点验证,并且只在全部一致时放开后续安装。
注意
不要在 /etc/group 或 /etc/passwd 中创建与 LDAP 对象同名的本地用户或组。本地条目会优先遮蔽 SSSD 返回的目录身份,造成平台能登录、组件却拿到错误 GID 或空组成员。可先执行 getent group extlab-ambari-admins,确认结果来自目录且 GID 为预期值;如果已有历史同名本地条目,应在确认没有本地账号和文件依赖其 UID/GID 后再清理。
# 在 Ambari Plus 中填写什么
进入 权限与审计 → LDAP 目录与权限 → 选择目录来源,选择 接入外部 LDAP。

| 页面字段 | 示例值 |
|---|---|
| LDAP 地址 | ldaps://dev1.test.com:11636,可继续添加备用地址并设置优先级。 |
| Base DN | dc=extlab,dc=test |
| Bind DN | uid=extlab-bind,ou=system,dc=extlab,dc=test |
| Bind 密码 | bind.pass 中的密码,只在页面输入。 |
| StartTLS | 关闭;这里已经直接使用 LDAPS。 |
| 受信任 CA | 上传或粘贴 ca.crt 的 PEM 内容。 |
| Java 证书吊销检查 | 企业 CA 已提供 CRL/OCSP 时开启;实验 CA 可关闭。 |
| 用户搜索 Base | ou=users |
| 用户过滤器 | (objectClass=inetOrgPerson) |
| 用户名属性 | uid |
| 用户组搜索 Base | ou=groups |
| 用户组过滤器 | (objectClass=groupOfNames) |
| 用户组名称属性 | cn |
| 成员属性 | member |
| 嵌套组 | 按企业目录规则开启。 |
| 默认管理员用户 | extlab-enabled |
| 默认管理员组 | extlab-ambari-admins |
先测试连接,再在“管理员准备”步骤验证管理员用户和组,最后预览用户与组。平台只保存只读 Bind 凭据;管理员本人使用自己的 LDAP 密码登录。
后续新增、停用用户或修改组成员时,仍在这台外部 LDAP 主机上维护。Ambari Plus 不回写外部目录;它按组保存平台权限。新用户加入已授权组后,应在目录查询、节点身份映射和 Ranger Usersync 都更新后自动继承同组权限;移出组或停用后,应使用新会话验证权限已经回收。完整操作见 外置 LDAP 用户、用户组与授权验证。
# 停用与外部所有权边界
平台停用“外部 LDAP”时,只应解除 Ambari 登录、Ranger Usersync 和其他消费者的连接,不应停止 extlab-slapd,也不应删除 /data/extlab/ldap。
如果只是暂停测试目录:
sudo systemctl stop extlab-slapd.service
恢复时:
sudo systemctl start extlab-slapd.service
删除数据库、证书或密码文件属于目录管理员的独立操作,不应与 Ambari Plus 的“停用目录接入”混在一起。
目录准备完成后,继续阅读: