LDAP使用docker安装部署与使用

LDAP使用docker安装部署与使用

一、安装部署

本文采用docker容器的方式运行openldap镜像。使用docker的方式运行呢,省去了很多配置,比如集成nexus组件使用memberof属性时,最新镜像已经配置好,无需再对ldap进行配置直接使用即可,并且安装简单,

1、准备工作

(1)需要在本地虚拟机或者服务器中安装docker。
(2)在运行之前我们首先需要将openLDAP的docker镜像拉取到本地。使用命令。
docker pull osixia/openldap
此时拉取到的镜像就是最新版本的,如果要拉取指定版本的,则在上条命令中加入对应tag即可,如:
docker pull osixia/openldap:1.3.0
(3)还需要一个可视化的ldap管理工具,我使用的是phpldapadmin。同样使用docker pull命令拉取对应镜像。
docker pull osixia/phpldapadmin

2、运行镜像

(1)通过docker run命令运行
运行openLDAP

docker run \
-p 389:389 \
-p 636:636 \
--name your_ldap \
--network bridge \
--hostname openldap-host \
--env LDAP_ORGANISATION="example" \
--env LDAP_DOMAIN="example.com" \
--env LDAP_ADMIN_PASSWORD="123456" \
--detach osixia/openldap

其中 -p 389:389 \ TCP/IP访问端口,-p 636:636 \ SSL连接端口。
–name your_ldap 容器名称为your_ldap
–network bridge 连接默认的bridge网络(docker0)
–hostname openldap-host 设置容器主机名称为 openldap-host
–env LDAP_ORGANISATION=“example” 配置LDAP组织名称
–env LDAP_DOMAIN=“example.com” 配置LDAP域名
–env LDAP_ADMIN_PASSWORD=“youedata520” 配置LDAP密码
默认登录用户名:admin
运行结果如图:
在这里插入图片描述
运行osixia/phpldapadmin

docker run \
-d \
--privileged \
-p 8080:80 \
--name youe_pla \
--env PHPLDAPADMIN_HTTPS=false \
--env PHPLDAPADMIN_LDAP_HOSTS=192.168.106.150 \
--detach osixia/phpldapadmin

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

(2)使用docker-compose启动openLDAP
在openLDAP官方文档中提供了一份docker-compose启动文件,https://github.com/osixia/docker-openldap/blob/stable/example/docker-compose.yml,这种方法我没有测试,感兴趣的可以自己试一下。
(3)在k8s集群中运行,可参考https://github.com/osixia/docker-openldap官方文档中的配置。

使用(多图预警)

1、登录

在运行成功后访问运行成功的phpldapadmin,地址为:192.168.106.150:8080,如图所示
在这里插入图片描述
点击登录,用户名为cn=admin,dc=example,dc=com 密码:123456
在这里插入图片描述

2、在界面新建组与用户

在这里插入图片描述

先创建一个组织单元比如创建一个产品部:

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

在新建的组下添加用户,选中developmnt条目,创建子条目,选择User Account或Account,推荐使用User Account,因为User Account中包含了Account,还增加了更多的属性。
在这里插入图片描述
填写完之后提交,创建成功
在这里插入图片描述

此时该用户的dn为cn=zhang san,cn=development,ou=product,dc=example,dc=com,如果想使用uid来识别用户可以在界面中rename修改用户的dn。
在这里插入图片描述
在这里插入图片描述

3、在ldap中使用memberOf属性

在一些组件的继承中需要用到memberOf属性去同步用户的一些角色信息,但是posixGroup组并没有提供这个属性,所以我们需要新建一个拥有groupOfUniqueNames的用户组条目。
我们在product部门条目下创建一个拥有groupOfUniqueNames的用户组条目,第一步先选择创建子条目,第二部选择默认模板。
在这里插入图片描述
选择groupOfUniqueNames,点击下一步

在这里插入图片描述
在这里插入图片描述
rdn选择ou或者cn都可以(rdn:一般指dn逗号最左边的部分,如cn=zhang san,cn=development,ou=product,dc=example,dc=com中rdn为cn=zhang san。它与RootDN不同,RootDN通常与RootPW同时出现,特指管理LDAP中信息的最高权限用户。)
然后选择此组内包含的成员,点击这个搜索按钮,选择对应的人员,我们选择uid=zsan的用户。
在这里插入图片描述
在这里插入图片描述

注意填写改组的ou属性。
在这里插入图片描述
然后点击创建。
点进admin的组中 我们就可以看到已经添加成功的uid=zsan的用户。
在这里插入图片描述
我们也可进入容器去进行验证。
进入容器

docker exec -it 容器id /bash/bin

使用命令:

ldapsearch -LL  -H ldapi:/// -D "cn=admin,dc=xxx,dc=xxx" -W "(uid=所要搜索的uid)" -b dc=xxx,dc=xxx memberOf

效果如下
在这里插入图片描述
如果未出现红框中结果,则未配置成功。
注意:当前docker安装的最新版的openLDAP默认开启了memberOf属性,如果是其他方式安装的openLDAP可以参考https://wandouduoduo.github.io/articles/53f92c3c.html

4、在界面使用LDIF 文件进行组与用户的创建。

在这里插入图片描述

在界面选择import,可直接输入LDIF文件内容,也可导入对应的LDIF文件,如创建一个product部门下的deploy组。
在这里插入图片描述

创建成功
在这里插入图片描述
在deploy组下创建一个uid=lisi的人员
在这里插入图片描述
创建成功
在这里插入图片描述
LDIF文件可以从相似的条目中导出,然后稍作修改后进行创建。如图

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

参考文档:

https://www.cnblogs.com/Actexpler-S/p/7819192.html 主要讲解了ldap的基本概念
https://wandouduoduo.github.io/articles/53f92c3c.html 讲解memberOf的使用
https://wiki.shileizcc.com/confluence/display/openldap/Docker+OpenLDAP 关于openLDAP很详细的一个网站
https://github.com/osixia/docker-openldap openldap github地址

原创文章 2 获赞 4 访问量 382

猜你喜欢

转载自blog.csdn.net/weixin_42257195/article/details/102769495