【外置】用户、用户组与授权验证实战
# 权限链路
企业 LDAP 用户/组 → Ambari Plus 只读同步 → 组权限 → Ranger/Knox/组件 → 审计
1
# 1. 在外部 LDAP 创建对象
以下 LDIF 在企业 LDAP 侧执行。密码先用 slappasswd 生成,不把明文写入文件。
dn: uid=analyst01,ou=users,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
cn: Analyst 01
sn: 01
uid: analyst01
uidNumber: 20001
gidNumber: 20001
homeDirectory: /home/analyst01
loginShell: /bin/bash
userPassword: {SSHA}<generated-hash>
dn: cn=data-developers,ou=groups,dc=example,dc=com
objectClass: groupOfNames
cn: data-developers
member: uid=analyst01,ou=users,dc=example,dc=com
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ldapadd -x -H ldaps://ldap.example.com:636 \
-D 'cn=admin,dc=example,dc=com' -W -f analyst01.ldif
ldapsearch -x -H ldaps://ldap.example.com:636 \
-D 'uid=svc-ambari,ou=users,dc=example,dc=com' -W \
-b 'dc=example,dc=com' '(|(uid=analyst01)(cn=data-developers))' dn member
1
2
3
4
5
6
2
3
4
5
6
# 2. 查看同步结果
进入 02 用户,确认用户状态、来源和所属组。

进入 03 用户组,确认成员和嵌套组。外置模式页面为只读,新增/删除必须回企业 LDAP。

# 3. 按组授权
进入 04 授权 → 组权限配置,选择目标组,配置入口、数据服务、应用角色和平台角色。

权限只绑定组。新增用户加入已授权组后,目录同步和权限下发完成即可继承,不重新复制策略。
# 4. 验证新增成员继承
dn: cn=data-developers,ou=groups,dc=example,dc=com
changetype: modify
add: member
member: uid=analyst02,ou=users,dc=example,dc=com
1
2
3
4
2
3
4
ldapmodify -x -H ldaps://ldap.example.com:636 \
-D 'cn=admin,dc=example,dc=com' -W -f add-member.ldif
1
2
2
等待用户组页面显示 analyst02,再用该用户重新登录。其组权限应与 analyst01 一致;若尚未生效,先检查目录同步和权限下发审计,不直接修改组件本地账号。
# 5. 验证组件
# Hue
从服务 Quicklinks 打开 Hue,使用 LDAP 用户登录,执行一次真实查询或写入。

# Kyuubi
beeline -u 'jdbc:hive2://knox-ha.test.com:9443/gateway/default/kyuubi;ssl=true;transportMode=http;httpPath=kyuubi'
1
执行:
SELECT current_user();
SHOW DATABASES;
CREATE TABLE IF NOT EXISTS default.ldap_acceptance (id INT);
INSERT INTO default.ldap_acceptance VALUES (1);
SELECT * FROM default.ldap_acceptance;
1
2
3
4
5
2
3
4
5
# Airflow
从 Quicklinks 打开 Airflow,确认不发生循环重定向,并验证已授权用户可进入、未授权用户被拒绝。

# 6. 检查审计

验收必须同时包含:成功用户、拒绝用户、新增组成员继承、组件真实操作和成功审计记录。