环境:CentOS8.2
机器:10.1.1.4
持久化目录:/data/slapd
一、部署openLDAP
docker-compose.yaml
version: "3"
services:
ldap:
image: osixia/openldap
container_name: ldap
hostname: ldap
ports:
- 389:389
- 636:636
volumes:
- /data/slapd/database:/var/lib/ldap
- /data/slapd/config:/etc/ldap/slapd.d
environment:
LDAP_ORGANISATION: "test"
LDAP_DOMAIN: "test.com"
LDAP_ADMIN_PASSWORD: "123123"
ldapadmin:
image: osixia/phpldapadmin
container_name: ldapadmin
hostname: ldapadmin
ports:
- 8080:80
- 8443:443
depends_on:
- ldap
links:
- ldap:ldap-host
environment:
PHPLDAPADMIN_HTTPS: false
PHPLDAPADMIN_LDAP_HOSTS: ldap-host
启动ldap
docker-compose up -d
创建存放配置文件的目录
mkdir -p /data/slapd/config/ldif.d
二、添加ops组织
# cat /etc/ldap/slapd.d/ldif.d/dev.ldif
dn: ou=ops,dc=test,dc=com
objectclass: organizationalUnit
objectclass: top
ou: ops
执行添加
docker exec -it ldap \
ldapadd -x \
-D "cn=admin,dc=test,dc=com" \
-w 123123 \
-f /etc/ldap/slapd.d/ldif.d/dev.ldif \
-H ldap://10.1.1.4
三、添加用户
# cat 11111.ldif
dn: cn=11111,ou=ops,dc=test,dc=com
objectClass: top
objectClass: inetOrgPerson
cn: 11111
sn: 测试
mail: 11111@test.com
userPassword: 123123
执行添加
docker exec -it ldap \
ldapadd -x \
-D "cn=admin,dc=test,dc=com" \
-w 123123 \
-f /etc/ldap/slapd.d/ldif.d/11111.ldif \
-H ldap://10.1.1.4
四、脚本添加
添加组: sh auto_ldap.sh group 组名
加用户: sh auto_ldap.sh user 组名 工号 姓名 密码
删用户: sh auto_ldap.sh deluser 组名 工号
#/bash/bin
dc1=test
dc2=com
ldap_passwd=123123
types=$1 # user group deluser
groupname=$2
jobnumber=$3
username=$4
passwd=$5
# 参数 groupname
function create_group_ldif (){
cat >/data/slapd/config/ldif.d/$1.group.ldif <<EOF
dn: ou=$1,dc=$dc1,dc=$dc2
objectclass: organizationalUnit
objectclass: top
ou: $1
EOF
}
# 参数 groupname jobnumber username passwd
function create_user_ldif (){
cat >/data/slapd/config/ldif.d/$2.user.ldif <<EOF
dn: cn=$2,ou=$1,dc=$dc1,dc=$dc2
objectClass: top
objectClass: inetOrgPerson
cn: $2
sn: $3
mail: $2@test.com
userPassword: $4
EOF
}
function add_ldif (){
docker exec -it ldap \
ldapadd -x \
-D "cn=admin,dc=$dc1,dc=$dc2" \
-w $ldap_passwd \
-f /etc/ldap/slapd.d/ldif.d/$2.$1.ldif \
-H ldap://127.0.0.1
}
function show_help (){
echo "Usage:
添加组: sh auto_ldap.sh group 组名
加用户: sh auto_ldap.sh user 组名 工号 姓名 密码
删用户: sh auto_ldap.sh deluser 组名 工号
"
}
# 参数 groupname jobnumber
function delete_user(){
docker exec -it ldap \
ldapdelete -x \
-D "cn=admin,dc=$dc1,dc=$dc2" \
-w $ldap_passwd \
cn=$2,ou=$1,dc=$dc1,dc=$dc2 \
-H ldap://127.0.0.1
}
# 参数 types groupname jobnumber username passwd
function main (){
if [ -z $1 ];then
echo "输入types参数不正确"
show_help
exit 1
elif [ $1 = "group" ];then
create_group_ldif $2
add_ldif $1 $3
elif [ $1 = "user" ];then
create_user_ldif $2 $3 $4 $5
add_ldif $3
elif [ $1 = "deluser" ];then
delete_user $2 $3
if [ $? -eq 0 ];then
echo "$3 删除成功"
else
echo "$3 删除失败"
fi
else
echo "输入types参数不正确"
show_help
exit 1
fi
}
main ${types} ${groupname} ${jobnumber} ${username} ${passwd}
五、web页面管理
浏览器访问:http://10.1.1.4:8080
具体操作请参阅:参考【2】
参考文章: