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  | docker run -p 389:389 -p 636:636 \  | 
参数如下:
- -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  | docker run \  | 
参数如下:
- -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,如图所示

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

1.5. 在界面新建组与用户

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

这里点击Commit即可

创建成功

然后在该部门中创建组,或者不在细分的话也可直接创建用户。为了演示我就都先创建组然后创建用户。
同样点击刚创建好的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  | dn: cn=devops,ou=RD,dc=example,dc=com  | 
创建成功

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

文件内容
1  | dn: uid=lisi,cn=devops,ou=RD,dc=example,dc=com  | 
创建成功

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

导出

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