Docker部署Openldap和phpLDAPadmin
1、LDAP概念:
LDAP是轻量级目录访问协议,英文全称是:LightWeight Directory Access Protocol,一般称为LDAP。
按照我们对文件目录的理解,LDAP可以看成是一个文件系统,类似目录和文件树。
2、LDAP软件:
LDAP是一个协议。
LDAP产品:Microsoft的ActiveDrectory,Lotus的Domino Directory、IBM的WebSphere中也集成了LDAP服务。
LDAP的开源实现是OpenLDAP。
3、OpenLDAP介绍:
OpenLDAP是最常用的目录服务之一,提供了目录服务的所有功能,包括目录搜索,身份认证、安全通道、过滤器等。
大多数的Linux发行版里面都带有OpenLDAP的安装包。
OpenLDAP服务默认是使用非加密的TCP/IP协议来接收服务的请求,并将查询结果传到客户端。
由于大多数目录服务都是用于系统的安全认证部分比如:用户登录和身份验证,所以它也支持使用基于SSL/TLS的加密协议来保证数据传送的保密性和完整性。
OpenLDAP是使用的OpenSSL来实现SSL/TLS的加密通信的。
4、LDAP的信息模型:
LDAP的信息模型是建立在目录entries的基础上。
一个条目是一些属性的集合,并且具有一个全局唯一性的可区分名称DN, 一个条目可以通过DN来引用。
每一个条目的属性具有一个类型和一个或多个值。
类型通常是容易记忆的名称,比如cn是通用名称common name,或者mail是电子邮件。
条目的值的语法取决于属性类型。比如cn属性可能具有一个值“Babs Jensen”。
一个mail属性可能包括"test@123.com”
5、LDAP的objectClass
LDAP通过属性objectClass来控制哪一个属性必须出现或允许出现在一个条目中,它的值决定了该条目必须遵守的模式规则。可以理解为关系数据库的表结构。
6、LDAP的常用关键字:
LDAP的entry是由各种字段构成,可以理解为关系数据库的字段。
7、OpenLDAP的部署:
7.1 拉取相关镜像:
docker pull osixia/openldap
docker pull osixia/phpldapadmin
7.2 运行容器openldap:
docker run \
-d \
-p 389:389 \
-p 636:636 \
-v /usr/local/ldap:/usr/local/ldap \
-v /data/openldap/ldap:/var/lib/ldap \
-v /data/openldap/slapd.d:/etc/ldap/slapd.d \
--env LDAP_ORGANISATION="changchunhua" \
--env LDAP_DOMAIN="changchunhua.cloud" \
--env LDAP_ADMIN_PASSWORD="123456" \
--name openldap \
--hostname openldap-host\
--network bridge \
osixia/openldap
-v /data/openldap/ldap:/var/lib/ldap:将数据持久化到本地
-p 389:389 \ TCP/IP 访问端口,-p 636:636 \ SSL 连接端口。
–name your_ldap 自行设置容器名称
–network bridge 连接默认的 bridge 网络(docker0)
–hostname openldap-host 设置容器主机名称为 openldap-host
–env LDAP_ORGANISATION=“changchunhua” 配置 LDAP 组织名称
–env LDAP_DOMAIN=“changchunhua.cloud” 配置 LDAP 域名
–env LDAP_ADMIN_PASSWORD=“123456” 配置 LDAP 密码
默认登录用户名:admin
7.3 运行容器phpldapadmin:
docker run \
-p 8080:80 \
--privileged \
--name phpldapadmin \
--env PHPLDAPADMIN_HTTPS=false \
--env PHPLDAPADMIN_LDAP_HOSTS=192.168.17.102 \
--detach osixia/phpldapadmin
–privileged 特权模式启动(使用该参数,container 内的 root 拥有真正的 root 权限。
否则,container 内的 root 只是外部的一个普通用户权限。)
–env PHPLDAPADMIN_HTTPS=false 禁用 HTTPS
–env PHPLDAPADMIN_LDAP_HOSTS =192.168.17.102 配置 openLDAP 的 IP 或者域名,我的 - openLDAP 是在虚拟机192.168.17.102启动。
此处设置访问端口为 8080,可自行更改访问端口号
可开启 443 端口 -p 443:443
7.4 浏览器访问http://192.168.17.102:8080:
输入登录:
Login DN:cn=admin, dc=changchunhua, dc=cloud
Password:123456
登录后的页面显示如下:
8、OpenLDAP用户创建:
创建OpenLDAP基础域:
第一步:点击dc=changchunhua,dc=cloud,然后点击Create a child entry:
第二步:点击 Generic:Organisational Unit:
创建groups:
同样的方式再创建users:
创建openldap组: