大家好,又见面了,我是你们的朋友全栈君。
LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务。目录服务是一种特殊的数据库系统,其专门针对读取,浏览和搜索操作进行了特定的优化。目录一般用来包含描述性的,基于属性的信息并支持精细复杂的过滤能力。目录一般不支持通用数据库针对大量更新操作操作需要的复杂的事务管理或回卷策略。而目录服务的更新则一般都非常简单。这种目录可以存储包括个人信息、web链结、jpeg图像等各种信息。为了访问存储在目录中的信息,就需要使用运行在TCP/IP 之上的访问协议—LDAP。
本文介绍如何在搭建ldap服务器,我以在云服务器 ESC (Elastic Compute Service)上搭建为例,ESC系统为 centos7.9。公网IP为121.51.39.239。 里面涉及到的密码设置,可以自行选择密码配置,这里我统一设置为123123,避免搞混。
有些资源在centos中无法通过 yum install
安装,需要下载后手动安装。这里有个 Ldapscripts 资源就需要手动下载安装。
链接:https://pan.baidu.com/s/1KspZJGBzjXt0QIm3ITE2QQ?pwd=xofo 提取码:xofo
使用 安装ldap相关软件
yum install -y openldap openldap-clients openldap-servers vim
将下述配置文件中的 Manager 和 my-domain 更换成自己的命名
将下述配置文件中的 Manager 和 my-domain 更换成自己的命名
vim /etc/openldap/slapd.d/cn=config/olcDatabase={
1}monitor.ldif
替换为:
vim /etc/openldap/slapd.d/cn=config/olcDatabase={
2}hdb.ldif
进行替换,并在最后一行添加认证密码123123: olcRootPW: 123123
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
# 修改该文件的权限
chown -R ldap:ldap /var/lib/ldap/
slaptest -u
systemctl start slapd
systemctl enable slapd
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
vim base.ldif
dn: dc=codesweet,dc=com
objectClass: dcObject
objectClass: organization
o: codesweet.com
dc: codesweet
dn: ou=users,dc=codesweet,dc=com
objectClass: organizationalUnit
objectClass: top
ou: users
dn: ou=groups,dc=codesweet,dc=com
objectClass: organizationalUnit
objectClass: top
ou: groups
ldapadd -x -W -D "cn=admin,dc=dianxin,dc=com" -f base.ldif
vim /etc/openldap/ldap.conf
BASE
和 URL
的注释去除,更换为下述,BASE
中的第一个 dc 更换为 codesweet,URL
中的IP 地址更换为你的云服务器的公网 IP。
sharutils
yum install sharutils
Ldapscripts
将文章起始处下载的资源包 Ldapscripts 上传到 ECS 的根路径中,然后进行解压并手动安装到根路径中。
tar zxf ldapscripts-2.0.8.tgz
cd ldapscripts-2.0.8
make install PREFIX=/
dapscripts
vim /etc/ldapscripts/ldapscripts.conf
SERVER="ldap://localhost"
改成 SERVER="ldap://121.51.39.239"
b. 将 SUFFIX="dc=example,dc=com"
改成 SUFFIX="dc=codesweet,dc=com"
c. 将 BINDDN="cn=Manager,dc=example,dc=com"
改成 BINDDN="cn=admin,dc=codesweet,dc=com"
d. 去掉 #ICONVCHAR="ISO-8859-15"
的注释/etc/ldapscripts/ldapscripts.passwd
文件
sh -c "echo -n '123456' > /etc/ldapscripts/ldapscripts.passwd"
这一节可以忽略,这是介绍如何在终端中配置ldap中的用户和组的,后面可以在web中创建。
创建group
ldapaddgroup openstack
创建用户
ldapadduser user1 openstack
设置用户密码
ldapsetpasswd user1
前面章节已经将ldap本地环境安装好,下面安装 web 界面 phpldapadmin
。
phpldapadmin
yum install -y phpldapadmin
php -v
来查看php版本。
vim /etc/httpd/conf.d/phpldapadmin.conf
<IfModule mod_authz_core.c>
中的内容,放开外网访问,这里只改了 2.4 版本的配置,因为 centos7 默认安装的 apache 为 2.4 版本。所以只需要改 2.4 版本的配置就可以了. 如果不知道自己apache版本,执行 rpm -qa|grep httpd
查看 apache
版本。
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
vim /etc/phpldapadmin/config.php
$servers->setValue('login','attr','dn');
$servers->setValue('login','anon_bind',false);
$servers->setValue('unique','attrs',array('mail','uid','uidNumber','cn','sn'));
systemctl start httpd systemctl enable httpd
账户:cn=admin,dc=codesweet,dc=com
密码:123123
3. 点击认证后,则成功登录:
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/146558.html原文链接:https://javaforall.cn