openLDAP+docker-compose

环境: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】

参考文章:

【1】LDAP使用docker安装部署与使用_啧啧zzz的博客-CSDN博客

【2】LDAP基础:5:使用ldapadd进行数据增加_淼叔的博客-CSDN博客

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值