docker容器化搭建OpenLDAP

1. docker 容器化搭建 OpenLDAP

1.1. 准备工作

(1)需要在本地虚拟机或者服务器中安装docker。
(2)在运行之前我们首先需要将openLDAP的docker镜像拉取到本地。使用命令。

1
docker pull osixia/openldap

此时拉取到的镜像就是最新版本的,如果要拉取指定版本的,则在上条命令中加入对应tag即可,如:

1
docker pull osixia/openldap:1.3.0

(3)还需要一个可视化的ldap管理工具,我使用的是phpldapadmin。同样使用docker pull命令拉取对应镜像。

1
docker pull osixia/phpldapadmin

1.2. 运行openLDAP

1
2
3
4
5
6
7
8
9
docker run -p 389:389 -p 636:636 \
--name openldap-server \
--env LDAP_TLS_VERIFY_CLIENT="never" \
--env LDAP_ORGANISATION="example" \
--env LDAP_DOMAIN="example.com" \
--env LDAP_ADMIN_PASSWORD="Pass1234cn" \
-v /data/ldap/data:/var/lib/ldap \
-v /data/ldap/conf:/etc/ldap/slapd.d \
--detach osixia/openldap:1.3.0

参数如下:

  • -p 389:389 \ TCP/IP访问端口,-p 636:636 \ SSL连接端口。
  • –name your_ldap 容器名称为your_ldap
  • –hostname openldap-host 设置容器主机名称为 openldap-host
  • –env LDAP_ORGANISATION=“example” 配置LDAP组织名称
  • –env LDAP_DOMAIN=“example.com” 配置LDAP域名
  • –env LDAP_ADMIN_PASSWORD=“youedata520” 配置LDAP密码
  • -v /data/ldap/data:/var/lib/ldap 配置数据映射到本地
  • -v /data/ldap/conf:/etc/ldap/slapd.d 配置文件映射到本地
  • 默认登录用户名:admin

1.3. 运行phpldapadmin

1
2
3
4
5
6
7
docker run \
-p 80:80 \
--name openldap-admin \
--env PHPLDAPADMIN_HTTPS=false \
--env PHPLDAPADMIN_LDAP_HOSTS=192.168.101.196 \
--detach \
osixia/phpldapadmin

参数如下:

  • -d 分离模式启动容器
  • –privileged 特权模式启动(使用该参数,container内的root拥有真正的root权限。
  • 否则,container内的root只是外部的一个普通用户权限。)
  • –env PHPLDAPADMIN_HTTPS=false 禁用HTTPS
  • –env PHPLDAPADMIN_LDAP_HOSTS =192.168.101.196 配置openLDAP的IP或者域名,我的openLDAP是在本地192.168.101.196启动。

1.4. 登录

用户名:cn=admin,dc=example,dc=com

密码:Pass1234cn

在运行成功后访问phpldapadmin,地址为:192.168.101.196,如图所示

ldap

点击登录,用户名为cn=admin,dc=example,dc=com 密码:Pass1234cn

ldap

1.5. 在界面新建组与用户

ldap

先创建一个组织单元,我这里创建研发部

ldap

这里点击Commit即可

ldap

创建成功

ldap

然后在该部门中创建组,或者不在细分的话也可直接创建用户。为了演示我就都先创建组然后创建用户。
同样点击刚创建好的RD部的条目,点击create a child entry,选择Posix Group,创建一个开发组。

点击Commit即可

创建成功

在新建的组下添加用户,选中developmnt条目,创建子条目,选择User Account或Account,推荐使用User Account,因为User Account中包含了Account,还增加了更多的属性。

点击Commit

创建完成

此时该用户的dn为cn=zhang san,cn=development,ou=RD,dc=example,dc=com,如果想使用uid来识别用户可以在界面中rename修改用户的dn。

修改成功

1.6. 在界面使用LDIF 文件进行组与用户的创建

选择import

在界面选择import,可直接输入LDIF文件内容,也可导入对应的LDIF文件,如创建一个RD部门下的devops组。

文件内容:

1
2
3
4
5
dn: cn=devops,ou=RD,dc=example,dc=com
cn: devops
gidnumber: 501
objectclass: posixGroup
objectclass: top

创建成功

在devops组下创建一个uid=lisi的人员

文件内容

1
2
3
4
5
6
7
8
9
10
11
12
dn: uid=lisi,cn=devops,ou=RD,dc=example,dc=com
cn: lisi
gidnumber: 500
givenname: li
homedirectory: /home/user/lisi
objectclass: inerOrgPerson
objectclass: posixAccount
objectclass: top
sn: si
uid: lisi
uidnumber: 1001
userpassword: 123456

创建成功

LDIF文件可以从相似的条目中导出,然后稍作修改后进行创建。如图

导出

可以将下面的内容复制修改后在import即可

-------------本文结束感谢您的阅读-------------