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组:

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐