一、概念介绍
LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,简称为LDAP。LDAP的目录服务其实也是一种数据库系统(Berkeley DB),只是这种数据库是一种树形结构(B Tree),适合读不适合频繁写,不支持事务不能回滚。
我们用LDAP实现多个组件的用户管理,比如把gitlab和jenkins、harbor等组件的用户放在LDAP一起管理,组件只负责权限管理。用户在这些组件登录时都走LDAP的认证,让用户可以用一套用户名密码即可登录所有组件。
LDAP的树形结构的概念理解
从叶子到根的这条“路径”是一条数据,称为条目(Entry),这条数据的全局唯一标识叫做dn
- dc(Domain Component)是域名的一部分,把完整的域名拆开。
- ou(Organization Unit)是组织单元。
- cn(Common Name)一般是用户的名字。
- uid(User Id)一般是用户登录id。
简单理解就是:dn是 一条记录的详细位置; dc是一个区域(相当于哪颗树);ou是一个组织(相当于哪一个分支);cn/uid(分支上的哪个苹果)。
二、安装ldap服务端
- 安装服务端
yum install -y openldap openldap-clients openldap-servers migrationtools
- 配置ldap服务器
vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
olcSuffix: dc=dzf,dc=com
olcRootDN: cn=auto,dc=dzf,dc=com
olcRootPW: 123456
- 配置监视数据库的配置文件
vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif
cn=auto,dc=dzf,dc=com
- 配置ldap数据库 将/usr/share/openldap-servers/DB_CONFIG.example的文件复制到/var/lib/ldap/DB_CONFIG目录下,并给文件授权ldap属主属组
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown -R ldap.ldap /var/lib/ldap/
- 检测配置是否正确
slaptest -u
- 输入命令出现succeeded表示验证成功
- 启动ldap,并设置开机自启
systemctl start slapd
systemctl enable slapd
#检测服务及端口
ss -antup | egrep "389|636"
- 启动ldap服务器的配置,需添加以下ldap模式
ls /etc/openldap/schema/*.ldif | xargs -I {} sudo ldapadd -Y EXTERNAL -H ldapi:/// -f {}
- 创建ldap DIT
vim /usr/share/migrationtools/migrate_common.ph
修改61行 $NAMINGCONTEXT{'group'} = "ou=Groups";
修改71行 $DEFAULT_MAIL_DOMAIN = "dzf.com";
修改74行 $DEFAULT_BASE = "dc=dzf,dc=com";
修改90行 $EXTENDED_SCHEMA = 1;
- 生成一个基地,ldif文件为域的DIT
- 切换到migrationtools目录下执行 ./migrate_base.pl > /root/base.ldif
cd /usr/share/migrationtools/
./migrate_base.pl > /root/base.ldif
- 将基地上传到ldap数据库中
ldapadd -x -W -D "cn=auto,dc=dzf,dc=com" -f /root/base.ldif
- 创建一些用户和组,并迁移到ldap
mkdir -p /home/guests
useradd -d /home/guests/test12 test12
echo 123456 | passwd --stdin test12
- 过滤这些用户和组以及/etc/shadow不同文件密码
getent passwd | tail -n 5
getent shadow | tail -n 5 > /root/shadow
getent group | tail -n 5 > /root/groups
- 使用migrationtools为这些用户创建ldif文件
切换到migrationtools目录下编辑vim migrate_passwd.pl文件
cd /usr/share/migrationtools
vim migrate_passwd.pl
修改188行,把/etc/shadow换成/root/shadow
- 然后在当前路径下执行下面的命令
./migrate_passwd.pl /root/users > users.ldif
./migrate_group.pl /root/groups > groups.ldif
- 将这些用户和组ldif文件上传到ldap数据库中
ldapadd -x -W -D "cn=auto,dc=dzf,dc=com" -f users.ldif
ldapadd -x -W -D "cn=auto,dc=dzf,dc=com" -f groups.ldif
- 现在搜索LDAP DIT的所有记录(如果能搜索到就说明安装成功了,至此ldap服务器安装完成(按这个安装只支持uid用户的登录))
ldapsearch -x -b "dc=dzf,dc=com" -H ldap://localhost
- 开放端口
三、电脑端安装客户端
-
电脑端下载完成后,点击进入填写ldap服务器地址
-
创建用户组或用户
在ou=People下去创建用户组或用户(右击--new--Group或User)
- 设置密码
给用户设置密码(右击--Set Password)
- 登录到ldap服务器去查看信息,就可以看到增加的一条信息如图
ldapsearch -x -b "dc=dzf,dc=com" -H ldap://localhost
- 这里的信息就是通过ldapadmin客户端添加进来的,到此全部部署完成
开启ssl
- 如果要开启ssl要修改配置文件,要增加ldaps:///
vi /etc/sysconfig/slapd
SLAPD_URLS="ldapi:/// ldap:/// ldaps:///"
- 再重启服务:
systemctl restart slapd.service