• 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 拉取相关镜像:

    1. docker pull osixia/openldap
    2. docker pull osixia/phpldapadmin

    7.2 运行容器openldap:

    1. docker run \
    2. -d \
    3. -p 389:389 \
    4. -p 636:636 \
    5. -v /usr/local/ldap:/usr/local/ldap \
    6. -v /data/openldap/ldap:/var/lib/ldap \
    7. -v /data/openldap/slapd.d:/etc/ldap/slapd.d \
    8. --env LDAP_ORGANISATION="changchunhua" \
    9. --env LDAP_DOMAIN="changchunhua.cloud" \
    10. --env LDAP_ADMIN_PASSWORD="123456" \
    11. --name openldap \
    12. --hostname openldap-host\
    13. --network bridge \
    14. 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:

    1. docker run \
    2. -p 8080:80 \
    3. --privileged \
    4. --name phpldapadmin \
    5. --env PHPLDAPADMIN_HTTPS=false \
    6. --env PHPLDAPADMIN_LDAP_HOSTS=192.168.17.102 \
    7. --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组:

     

  • 相关阅读:
    C. RationalLee(贪心+思维)
    CS5211中文规格书完整版|CS5211AN设计方案|CS5211电路设计资料
    (项目笔记)OpenCV目标检测程序
    美团动态线程池实践思路,开源了
    OceanBase数据库简单安装部署——筑梦之路
    重学JavaSE 第7章 : 面向对象(中) 继承性、多态性、方法的重写、super、子类对象实例化过程、Object类、包装类
    【Python】 了解二分类:机器学习中的基础任务
    中级深入--day17
    linux虚拟机mysql
    CentOS防火墙管理及配置
  • 原文地址:https://blog.csdn.net/chang_chunhua/article/details/127837359