1. 首页 > Rancher教程 > 正文

Rancher教程FG019-Rancher LDAP/AD统一身份认证集成实战

本篇文章详细介绍Rancher与LDAP/AD统一身份认证集成的完整流程,包括OpenLDAP和Active Directory两种认证方式的配置方法、用户组映射、权限控制等实战内容。风哥教程参考Rancher官方文档身份认证与授权管理相关章节。

目录大纲

Part01-基础概念与理论知识

1.1 Rancher身份认证架构原理

Rancher支持多种身份认证方式,包括本地用户、LDAP、Active Directory、OAuth、SAML等。LDAP/AD集成允许企业使用现有的目录服务进行统一身份认证,避免重复创建用户账户。Rancher通过认证代理与LDAP/AD服务器通信,验证用户凭据后映射到Rancher内部用户体系,并根据用户组成员关系分配相应权限。更多视频教程www.fgedu.net.cn

1.2 LDAP与Active Directory协议对比

LDAP(Lightweight Directory Access Protocol)是轻量级目录访问协议,OpenLDAP是开源实现。Active Directory是微软的目录服务产品,基于LDAP协议但增加了扩展功能。两者都支持标准LDAP协议,Rancher可以通过统一接口集成。主要区别在于AD提供Kerberos认证、组策略等企业级功能,而OpenLDAP更灵活轻量。学习交流加群风哥微信: itpux-com

Part02-生产环境规划与建议

2.1 LDAP/AD服务器环境规划

生产环境建议部署高可用的LDAP/AD服务器集群,至少2个节点。服务器配置建议:4核CPU、8GB内存、100GB存储。网络延迟控制在10ms以内,确保认证响应速度。防火墙开放389端口(LDAP)或636端口(LDAPS)。建议使用LDAPS加密传输,提高安全性。学习交流加群风哥QQ113257174

2.2 用户组结构与权限设计

建议按部门或项目划分用户组,如fgedu-admin、fgedu-dev、fgedu-ops等。每个组对应Rancher中的全局角色,如admin、cluster-member、project-member等。遵循最小权限原则,避免直接分配admin权限。定期审计用户组成员关系,及时移除离职人员。更多学习教程公众号风哥教程itpux_com

Part03-生产环境项目实施方案

3.1 OpenLDAP服务器部署配置

首先在192.168.1.100服务器上部署OpenLDAP服务。

# 安装OpenLDAP服务
yum install -y openldap-servers openldap-clients

# 启动slapd服务
systemctl start slapd
systemctl enable slapd

# 检查服务状态
systemctl status slapd
● slapd.service - OpenLDAP Server Daemon
   Loaded: loaded (/usr/lib/systemd/system/slapd.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2026-04-10 10:30:15 CST; 5s ago
     Docs: man:slapd(8)
           man:slapd-config(5)
           man:slapd-hdb(5)
           man:slapd-mdb(5)
  Process: 12345 ExecStart=/usr/sbin/slapd -u ldap -h ${SLAPD_URLS} $SLAPD_OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 12346 (slapd)
    Tasks: 3
   Memory: 12.5M
   CGroup: /system.slice/slapd.service
           └─12346 /usr/sbin/slapd -u ldap -h ldapi:/// ldap:///

Apr 10 10:30:15 fgedu.net.cn systemd[1]: Starting OpenLDAP Server Daemon...
Apr 10 10:30:15 fgedu.net.cn slapd[12346]: @(#) $OpenLDAP: slapd 2.4.44 $
Apr 10 10:30:15 fgedu.net.cn systemd[1]: Started OpenLDAP Server Daemon.
# 配置LDAP基础DN
ldapmodify -Y EXTERNAL -H ldapi:/// -f /Rancher/app/ldap/base.ldif

# 检查配置
ldapsearch -Y EXTERNAL -H ldapi:/// -b "cn=config" "(olcDatabase={1}mdb,cn=config)"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
# extended LDIF
# LDAPv3
# base  with scope subtree
# filter: (olcDatabase={1}mdb,cn=config)
# requesting: ALL
#

# {1}mdb, config
dn: olcDatabase={1}mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: {1}mdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=fgedu,dc=net,dc=cn
olcRootDN: cn=admin,dc=fgedu,dc=net,dc=cn
olcRootPW:: e1NTSEF9VjJjZk5iY1ZwZ3Z5Z3Z5Z3Z5Z3Z5Z3Z5Z3Z5Z3Z5Z3Z5Z3Z5Zw==
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub

from Rancher视频:www.itpux.com

# 创建组织单位和用户
ldapadd -x -D "cn=admin,dc=fgedu,dc=net,dc=cn" -w fgedu123 -f /Rancher/app/ldap/users.ldif

# 查看用户列表
ldapsearch -x -D "cn=admin,dc=fgedu,dc=net,dc=cn" -w fgedu123 -b "ou=users,dc=fgedu,dc=net,dc=cn" "(objectClass=inetOrgPerson)"
# extended LDIF
# LDAPv3
# base  with scope subtree
# filter: (objectClass=inetOrgPerson)
# requesting: ALL
#

# fgeduadmin, users, fgedu.net.cn
dn: cn=fgeduadmin,ou=users,dc=fgedu,dc=net,dc=cn
cn: fgeduadmin
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
sn: Admin
givenName: Fengge
mail: fgeduadmin@fgedu.net.cn
uid: fgeduadmin
userPassword:: e1NTSEF9VjJjZk5iY1ZwZ3Z5Z3Z5Z3Z5Z3Z5Z3Z5Z3Z5Z3Z5Z3Z5Z3Z5Zw==

# fgedudev01, users, fgedu.net.cn
dn: cn=fgedudev01,ou=users,dc=fgedu,dc=net,dc=cn
cn: fgedudev01
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
sn: Dev01
givenName: Fengge
mail: fgedudev01@fgedu.net.cn
uid: fgedudev01
userPassword:: e1NTSEF9VjJjZk5iY1ZwZ3Z5Z3Z5Z3Z5Z3Z5Z3Z5Z3Z5Z3Z5Z3Z5Zw==
# 创建用户组
ldapadd -x -D "cn=admin,dc=fgedu,dc=net,dc=cn" -w fgedu123 -f /Rancher/app/ldap/groups.ldif

# 查看用户组
ldapsearch -x -D "cn=admin,dc=fgedu,dc=net,dc=cn" -w fgedu123 -b "ou=groups,dc=fgedu,dc=net,dc=cn" "(objectClass=groupOfNames)"
# extended LDIF
# LDAPv3
# base  with scope subtree
# filter: (objectClass=groupOfNames)
# requesting: ALL
#

# fgedu-admin, groups, fgedu.net.cn
dn: cn=fgedu-admin,ou=groups,dc=fgedu,dc=net,dc=cn
cn: fgedu-admin
objectClass: groupOfNames
member: cn=fgeduadmin,ou=users,dc=fgedu,dc=net,dc=cn

# fgedu-dev, groups, fgedu.net.cn
dn: cn=fgedu-dev,ou=groups,dc=fgedu,dc=net,dc=cn
cn: fgedu-dev
objectClass: groupOfNames
member: cn=fgedudev01,ou=users,dc=fgedu,dc=net,dc=cn

3.2 Rancher集成OpenLDAP认证

登录Rancher管理界面,配置OpenLDAP认证。

风哥提示:配置LDAP认证前,建议先使用ldapsearch命令测试连接,确保用户名密码正确。

图形化配置步骤:

步骤1:Rancher管理界面 – 全局设置 – 认证 – 选择”OpenLDAP” – 点击”下一步”

步骤2:配置LDAP服务器 – 输入服务器地址192.168.1.100 – 端口389 – 绑定DN cn=admin,dc=fgedu,dc=net,dc=cn – 密码fgedu123 – 点击”下一步”

步骤3:配置用户搜索 – 基础DN ou=users,dc=fgedu,dc=net,dc=cn – 用户属性uid – RDN属性cn – 点击”下一步”

步骤4:配置组搜索 – 基础DN ou=groups,dc=fgedu,dc=net,dc=cn – 组属性cn – 组成员属性member – 点击”下一步”

步骤5:测试登录 – 输入用户名fgeduadmin – 密码fgedu123 – 点击”测试连接”

步骤6:确认配置成功 – 点击”保存”

# 测试LDAP连接
ldapsearch -x -H ldap://192.168.1.100:389 -D "cn=admin,dc=fgedu,dc=net,dc=cn" -w fgedu123 -b "dc=fgedu,dc=net,dc=cn" "(uid=fgeduadmin)"
# extended LDIF
# LDAPv3
# base  with scope subtree
# filter: (uid=fgeduadmin)
# requesting: ALL
#

# fgeduadmin, users, fgedu.net.cn
dn: cn=fgeduadmin,ou=users,dc=fgedu,dc=net,dc=cn
cn: fgeduadmin
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
sn: Admin
givenName: Fengge
mail: fgeduadmin@fgedu.net.cn
uid: fgeduadmin
userPassword:: e1NTSEF9VjJjZk5iY1ZwZ3Z5Z3Z5Z3Z5Z3Z5Z3Z5Z3Z5Z3Z5Z3Z5Zw==

3.3 Rancher集成Active Directory认证

对于使用Active Directory的企业,配置AD认证流程类似。

# 测试AD连接
ldapsearch -x -H ldap://192.168.1.101:389 -D "cn=Administrator,cn=users,dc=fgedu,dc=local" -w Fgedu@123 -b "dc=fgedu,dc=local" "(sAMAccountName=fgeduadmin)"
# extended LDIF
# LDAPv3
# base  with scope subtree
# filter: (sAMAccountName=fgeduadmin)
# requesting: ALL
#

# fgeduadmin, Users, fgedu.local
dn: CN=fgeduadmin,CN=Users,DC=fgedu,DC=local
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: fgeduadmin
sAMAccountName: fgeduadmin
userPrincipalName: fgeduadmin@fgedu.local
mail: fgeduadmin@fgedu.local
memberOf: CN=fgedu-admin,OU=Groups,DC=fgedu,DC=local

图形化AD配置步骤:

步骤1:Rancher管理界面 – 全局设置 – 认证 – 选择”ActiveDirectory” – 点击”下一步”

步骤2:配置AD服务器 – 输入服务器地址192.168.1.101 – 端口389 – 服务账号cn=Administrator,cn=users,dc=fgedu,dc=local – 密码Fgedu@123 – 域fgedu.local – 点击”下一步”

步骤3:配置用户搜索 – 用户登录属性sAMAccountName – 搜索基础CN=Users,DC=fgedu,DC=local – 点击”下一步”

步骤4:配置组搜索 – 组搜索基础OU=Groups,DC=fgedu,DC=local – 点击”下一步”

步骤5:测试登录 – 输入用户名fgeduadmin – 密码Fgedu@123 – 点击”测试连接”

步骤6:确认配置成功 – 点击”保存”

Part04-生产案例与实战讲解

4.1 用户登录与权限验证实战

使用LDAP用户登录Rancher并验证权限。

# 使用fgeduadmin用户登录Rancher
# 浏览器访问 https://rancher.fgedu.net.cn
# 输入用户名: fgeduadmin
# 输入密码: fgedu123
# 点击"登录"
# 查看当前登录用户信息
kubectl get configmap -n cattle-system rancher-settings -o yaml | grep -A 10 "ldap"
apiVersion: v1
data:
  ldap: |
    {
      "enabled": true,
      "server": "192.168.1.100",
      "port": 389,
      "serviceAccountDn": "cn=admin,dc=fgedu,dc=net,dc=cn",
      "serviceAccountPassword": "fgedu123",
      "userSearchBase": "ou=users,dc=fgedu,dc=net,dc=cn",
      "userSearchAttribute": "uid",
      "groupSearchBase": "ou=groups,dc=fgedu,dc=net,dc=cn",
      "groupSearchAttribute": "cn",
      "groupMembershipAttribute": "member"
    }
kind: ConfigMap
metadata:
  name: rancher-settings
  namespace: cattle-system
time="2026-04-10T10:45:23Z" level=info msg="User fgeduadmin logged in successfully via LDAP"
time="2026-04-10T10:45:23Z" level=info msg="Mapping LDAP user fgeduadmin to Rancher user fgeduadmin"
time="2026-04-10T10:45:23Z" level=info msg="User fgeduadmin assigned to global role: admin"
time="2026-04-10T10:45:24Z" level=info msg="User fgeduadmin accessing cluster: local"

4.2 用户组权限分配实战

配置用户组与Rancher全局角色的映射关系。

# 创建全局角色映射
kubectl apply -f - <
groupmember.management.cattle.io/fgedu-admin created
globalrolebinding.management.cattle.io/fgedu-admin-binding created
yes
NAME            GROUP NAME      USER NAME
fgedu-admin     fgedu-admin     fgeduadmin
fgedu-dev       fgedu-dev       fgedudev01

4.3 故障排查与问题解决

常见LDAP/AD集成问题及解决方法。

风哥提示:LDAP连接失败时,首先检查网络连通性和防火墙规则,确保389端口可访问。

● slapd.service - OpenLDAP Server Daemon
   Loaded: loaded (/usr/lib/systemd/system/slapd.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2026-04-10 10:30:15 CST; 2h 15min ago
     Docs: man:slapd(8)
           man:slapd-config(5)
           man:slapd-hdb(5)
           man:slapd-mdb(5)
  Process: 12345 ExecStart=/usr/sbin/slapd -u ldap -h ${SLAPD_URLS} $SLAPD_OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 12346 (slapd)
    Tasks: 5
   Memory: 15.2M
   CGroup: /system.slice/slapd.service
           └─12346 /usr/sbin/slapd -u ldap -h ldapi:/// ldap:///
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN      12346/slapd
tcp6       0      0 :::389                  :::*                    LISTEN      12346/slapd
Trying 192.168.1.100...
Connected to 192.168.1.100.
Escape character is '^]'.
Connection closed by foreign host.
time="2026-04-10T10:50:00Z" level=info msg="LDAP connection established to 192.168.1.100:389"
time="2026-04-10T10:50:01Z" level=info msg="LDAP bind successful with DN cn=admin,dc=fgedu,dc=net,dc=cn"
time="2026-04-10T10:50:02Z" level=info msg="LDAP user search completed: found 2 users"
time="2026-04-10T10:50:03Z" level=info msg="LDAP group search completed: found 2 groups"
deployment.apps/rancher restarted
Waiting for deployment "rancher" rollout to finish: 1 old replicas are pending termination...
Waiting for deployment "rancher" rollout to finish: 1 old replicas are pending termination...
deployment "rancher" successfully rolled out

Part05-风哥经验总结与分享

5.1 生产环境最佳实践

1. 使用LDAPS加密传输,避免明文传输密码
2. 配置LDAP连接池,提高认证性能
3. 设置合理的超时时间,避免长时间等待
4. 定期备份LDAP数据库,防止数据丢失
5. 监控LDAP服务性能,及时扩容
6. 实施日志审计,记录所有认证操作
7. 配置用户组自动同步,减少手动维护
8. 定期测试灾备恢复流程,确保可靠性

5.2 常见问题与解决方案

1. 用户登录失败:检查LDAP服务器连接、用户DN格式、密码正确性
2. 权限不生效:验证用户组成员关系、全局角色绑定配置
3. 性能问题:优化LDAP索引、增加服务器资源、使用连接池
4. 同步延迟:调整同步间隔、检查网络带宽
5. 认证超时:增加超时时间、优化LDAP查询性能
6. 密码过期:配置密码策略、启用密码自动更新
7. 组成员不显示:检查组成员属性、验证搜索基础DN
8. SSL证书错误:导入正确的CA证书、验证证书有效期

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息