问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

OpenLDAP统一身份认证系统完整部署指南

创作时间:
作者:
@小白创作中心

OpenLDAP统一身份认证系统完整部署指南

引用
1
来源
1.
https://www.cnblogs.com/wuhanjiayou/p/18060381/OpenLDAP

LDAP 介绍

LDAP(Lightweight Directory Access Protocol)轻型目录访问协议,常用在单点登录场景。用户可以通过一个用户名和密码登录多个服务,方便管理。目前很多开源软件如Jenkins、GitLab、Jumpserver、Grafana、Confluence、NextCloud等都集成了LDAP,方便用户使用和运维管理。

下面介绍在CentOS7环境中安装和配置OpenLDAP服务器的步骤。

LDAP一般组织架构

软件安装

yum install openldap openldap-clients openldap-servers -y

配置OpenLDAP Server

编辑配置文件:

vim /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif

cn=Manager,dc=my-domain,dc=com修改为你自己的,例如:

cn=admin,dc=wuhanjiayou,dc=cn

编辑另一个配置文件:

vim /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif

将以下内容修改为:

olcSuffix: dc=wuhanjiayou,dc=cn
olcRootDN: cn=admin,dc=wuhanjiayou,dc=cn

在末尾添加认证密码:

olcRootPW: 123456

拷贝DB文件:

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown -R ldap:ldap /var/lib/ldap/

测试配置文件是否正确:

slaptest -u

如果修改了hostname,需要相应修改hosts文件:

hostnamectl set-hostname ldap
echo '127.0.0.1 ldap' >> /etc/hosts

启动服务:

systemctl start slapd
systemctl enable slapd

添加schema表:

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/inetorgperson.ldif

创建base.ldif文件

创建如下文件:

vim base.ldif

内容如下:

dn: dc=wuhanjiayou,dc=cn
objectClass: dcObject
objectClass: organization
o: wuhanjiayou.cn
dc: wuhanjiayou
dn: ou=users,dc=wuhanjiayou,dc=cn
objectClass: organizationalUnit
objectClass: top
ou: users
dn: ou=groups,dc=wuhanjiayou,dc=cn
objectClass: organizationalUnit
objectClass: top
ou: groups

建立最基础的目录结构:

ldapadd -x -W -D "cn=admin,dc=wuhanjiayou,dc=cn" -f base.ldif

验证基础目录是否创建成功:

vim /etc/openldap/ldap.conf

添加如下行信息:

BASE    dc=wuhanjiayou,dc=cn
URI     ldap://10.0.59.114 ldap://10.0.59.114:666

管理用户与组

安装依赖包:

yum install sharutils -y

下载并安装ldapscripts:

cd /opt
tar xzvf ldapscripts-2.0.8.tgz
cd ldapscripts-2.0.8 && make install PREFIX=/

配置ldapscripts:

vim /etc/ldapscripts/ldapscripts.conf

修改如下内容:

SERVER="ldap://10.0.59.114"
SUFFIX="dc=wuhanjiayou,dc=cn"
BINDDN="cn=admin,dc=wuhanjiayou,dc=cn"
ICONVCHAR="ISO-8859-15"

修改密码文件:

sh -c "echo -n '123456' > /etc/ldapscripts/ldapscripts.passwd"

管理Group和User

创建Group:

ldapaddgroup it

创建User:

ldapadduser wangj it

设置用户密码:

ldapsetpasswd wangj

基于PHPLDAPAdmin访问管理后台

安装Apache和PHP:

yum install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml -y

安装PHPLDAPAdmin:

yum -y install epel-release
yum --enablerepo=epel -y install phpldapadmin

配置HTTPD:

vim /etc/httpd/conf/httpd.conf

修改如下内容:

AllowOverride All
DirectoryIndex index.html index.cgi index.php
ServerTokens Prod
KeepAlive On

配置PHPLDAPAdmin:

vim /etc/phpldapadmin/config.php

修改如下内容:

$servers->setValue('login','attr','dn');
$servers->setValue('server','host','127.0.0.1');

配置访问控制权限:

vim /etc/httpd/conf.d/phpldapadmin.conf

修改如下内容:

Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
Alias /ldapadmin /usr/share/phpldapadmin/htdocs
<Directory /usr/share/phpldapadmin/htdocs>
  <IfModule mod_authz_core.c>
    Require local
    Require ip 10.0.59.0/24
  </IfModule>
  <IfModule !mod_authz_core.c>
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
    Allow from ::1
  </IfModule>
</Directory>

启动PHPLDAPAdmin:

systemctl enable httpd
systemctl start httpd

使用Web浏览器访问:

http://10.0.59.114/ldapadmin/

用户名:cn=admin,dc=wuhanjiayou,dc=cn
密码:123456

如果登录报错,可尝试关闭服务器SELinux:

setenforce 0

至此,OpenLDAP服务器部署完成。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号