LDAP
一、LDAP的安装
linux 的 安装我就不赘述了,度娘有很多,这里有个window版的下载地址,大家可以自己试下,最好用迅雷下载,浏览器自己下载太慢了。
openldap:
32位:https://www.maxcrc.de/wp-content/uploads/2019/04/OpenLDAPforWindows_x86.zip
63位:https://www.maxcrc.de/wp-content/uploads/2019/04/OpenLDAPforWindows_x64.zip
CSDN下载地址:
32位:https://download.csdn.net/download/qq_35915146/12277493
64位:https://download.csdn.net/download/qq_35915146/12277502
一直下一步就好了。
注意这个页面选个BDB
安装完成就会在任务管理器的服务,看到openldap的服务正在运行了,我们重启或者停止也可以在这操作
二、数据导入
安装目录:C:\OpenLDAP
编辑文件:C:\OpenLDAP\slapd.conf 找到如下内容:
suffix "dc=maxcrc,dc=com"
rootdn "cn=Manager,dc=maxcrc,dc=com"
修改成自己的域
suffix "dc=micmiu,dc=com"
rootdn "cn=Manager,dc=micmiu,dc=com"
然后重启openldap服务。
新建一个文件:C:\OpenLDAP\mydemo.ldif ,内容如下:
dn:dc=micmiu,dc=com
objectclass:domain
objectclass:top
o:Michael Blog
dc:micmiu
dn:ou=Developer,dc=micmiu,dc=com
objectclass:organizationalUnit
ou:Developer
description:Container fordeveloper entries
dn:ou=Tester,dc=micmiu,dc=com
objectclass:organizationalUnit
ou:Tester
description:Container fortest entries
dn:uid=Michael,ou=Developer,dc=micmiu,dc=com
uid:Michael
objectClass:inetOrgPerson
mail:sjsky_007@gmail.com
userPassword:111111
labeledURI:http://www.micmiu.com
sn:Sun
cn:Michael Sun
dn:uid=Miumiu,ou=Tester,dc=micmiu,dc=com
uid:Miumiu
objectClass:inetOrgPerson
userPassword:111111
labeledURI:http://www.micmiu.com
sn:Wu
cn:Miumiu Wu
然后在C:\OpenLDAP\ 页面打开命令行窗口
执行命令
ldapadd -x -D "cn=Manager,dc=micmiu,dc=com" -w secret -f ./mydemo.ldif

三、可视化客户端
LDAP简易客户端地址:
双击lbe.bat即可运行
运行后,输入服务器IP,端口,查找DN,输入账号密码即可连接成功
默认连接后的页面:点击图标或者选中目标右键就可以操作了
四、LDAP权限控制
具体可以参考文章:https://blog.csdn.net/xyy511/article/details/90521102?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-tas
这里很详细
五、配置示例
在 C:\OpenLDAP\目录增加文件:slapd.access.conf 并添加如下示例内容
并且在C:\OpenLDAP\slapd.conf 增加一行
include ./slapd.access.conf
重启ldap服务
下面示例实现了分级管理 并且限制登录 :
1.Developer组的用户,可以登录客户端 ,但是不允许修改自己的组,可以读取Tester组的用户,但是不可以修改。
2.Tester组的用户,不可以登录客户端
# 限制Developer组可以登录
access to dn.children="ou=Developer,dc=micmiu,dc=com"
by anonymous auth
# 限制Tester组可以被Developer组读取,Tester组没其他权限
access to dn.children="ou=Tester,dc=micmiu,dc=com"
by dn.children="ou=Developer,dc=micmiu,dc=com" read
by * none
#针对于所有组,匿名用户可以认证,自己可以修改自己,认证用户可以读取。
access to *
by anonymous auth
by self write
by users read
这里注意的是,权限划分是从下至上的,先划分下面的大权限,然后控制单独每个组的权限。