Docker 安装LDAP(企业级统一账号配置系统)

背景

在企业数字世界里,每个员工都需要登录邮箱、系统、Wi-Fi等多把“钥匙”。如果每把钥匙都要单独配制,管理将无比混乱。LDAP就像一位智能管家,它制作一把“万能钥匙”(统一账号密码),让你畅通所有授权区域,极大简化了登录与管理。

1、LDAP 简介

LDAP到底是啥?—— 您公司里的“统一账户管理中心”

想象一下,你在一家大公司上班。

周一早上,你打开电脑,需要输入密码登录Windows系统;然后打开公司邮箱,又得输一遍密码;接着要连公司Wi-Fi,再输一次;想用一下内部的报销系统,好家伙,还得输密码!

是不是很烦?而且对公司的网管大叔来说更是个噩梦:如果有100个员工,每个人要记4个密码,那他就要管理400个账户。万一有人离职了,他得记得把这一个人的所有账户在四个系统里全都删掉,万一漏了一个,就可能有安全风险。

这个时候,LDAP就来拯救大家了!

LDAP(轻型目录访问协议),你可以把它通俗地理解成公司内部的一个 “统一的通讯录” 或者 “万能账号本”。

这个“通讯录”里不光有每个人的电话、部门,更重要的,它存着你的一套统一的用户名和密码,以及你能访问哪些系统的权限清单。

它是怎么工作的呢?很简单:

你只记一套密码:就像只用一把万能钥匙。

当你登录任何一个公司系统(比如电脑、Wi-Fi、邮箱)时,那个系统不会自己判断你对不对,而是会跑去问LDAP服务器:“喂,老兄,看看这个叫‘张三’的,密码是‘123456’,对不对?他有没有权限登录我啊?”

LDAP服务器一查自己的“账号本”:“嗯,密码对的,而且我这儿记录着他确实是IT部的,可以登录邮箱和Wi-Fi。批准!”

于是,“叮”的一声,你就顺利登录了。

所以,LDAP起的作用就是:

对员工(你)来说:省事! 再也不用记一大堆密码了,一次登录,畅通无阻。

对公司(网管)来说:省心又安全!
只需要在LDAP这一个地方,给新员工创建一个账号、分配好权限;员工离职时,直接在这个账号本上给他画个叉,他就所有系统都登不上了,管理起来非常方便,避免了安全漏洞。

总结一下:

LDAP就像是一个公司的“后台大总管”。所有需要账号密码的地方,都归它管。它建立了一套统一的标准,让所有的软件和系统都知道该去找谁验证身份。

你下次如果再遇到一家公司,发现用一个账号密码就能登录所有内部系统,那背后默默干活儿的,十有八九就是LDAP这位“深藏功与名”的超级管家了!

2、LDAP部署

2.1、LDAP Compose编排

docker compose 编排文件,方便快捷的部署容器,编排内容如下,多瞧瞧注释,起容器很细节都在这些点上。

services:
  openldap:  #容器一,ldap基础服务
    image: osixia/openldap:latest
    container_name: openldap
    environment:
      LDAP_LOG_LEVEL: "256"
      LDAP_ORGANISATION: "Test"
      LDAP_DOMAIN: "test.com.cn"
      LDAP_BASE_DN: "dc=test,dc=com,dc=cn"   #Ldap初始根目录
      LDAP_ADMIN_PASSWORD: "qwer1234"  #管理密码,超管账号会是:cn=admin,dc=test,dc=com,dc=cn
      LDAP_CONFIG_PASSWORD: "config"
      LDAP_READONLY_USER: "false"
      LDAP_RFC2307BIS_SCHEMA: "false"
      LDAP_BACKEND: "mdb"
      LDAP_TLS: "true"
      LDAP_TLS_CRT_FILENAME: "ldap.crt"
      LDAP_TLS_KEY_FILENAME: "ldap.key"
      LDAP_TLS_CA_CRT_FILENAME: "ca.crt"
      LDAP_TLS_ENFORCE: "false"
      LDAP_TLS_CIPHER_SUITE: "SECURE256:-VERS-SSL3.0"
      LDAP_TLS_PROTOCOL_MIN: "3.1"
      LDAP_TLS_VERIFY_CLIENT: "try"
      LDAP_REPLICATION: "false"
      KEEP_EXISTING_CONFIG: "false"
      LDAP_REMOVE_CONFIG_AFTER_SETUP: "true"
      LDAP_SSL_HELPER_PREFIX: "ldap"
    tty: true
    stdin_open: true
    volumes:
      - /data/apps/openldap/var/lib/ldap:/var/lib/ldap
      - /data/apps/openldap/etc/ldap/slapd.d:/etc/ldap/slapd.d
      - /data/apps/openldap/container/service/slapd/assets/certs:/container/service/slapd/assets/certs
    ports:
      - "389:389"
      - "636:636"
    domainname: "hunwei.top"  #可以设计一个域名,个人随便都行,真实如果使用域名访问,就用这个。
    hostname: "hunwei.top"    #可以设计一个主机名,随便都行
  phpldapadmin:     # 容器二,ldap管理平台
    image: osixia/phpldapadmin:latest
    container_name: phpldapadmin
    environment:
      PHPLDAPADMIN_LDAP_HOSTS: "openldap"
      PHPLDAPADMIN_HTTPS: "false"
    ports:
      - "6443:80"
    depends_on:
      - openldap
  ssp-app:   # 容器三,ldap密码自助服务
    image: registry.cn-hangzhou.aliyuncs.com/eryajf/self-service-password
    container_name: ssp-app
    volumes:
      - /data/apps/ssp/ssp:/www/ssp
      - /data/apps/ssp/logs:/www/logs
    ports:
      - 6445:80
    environment:
      - LDAP_SERVER=ldap://192.168.1.122:389   #这里可以使用域名访问,也可以使用ip访问,安装ldap的宿主机IP
      - LDAP_STARTTLS=false
      - LDAP_BINDDN=cn=admin,dc=test,dc=com,dc=cn     #ldap超管账号
      - LDAP_BINDPASS=qwer1234
      - LDAP_BASE_SEARCH=dc=test,dc=com,dc=cn
      - LDAP_LOGIN_ATTRIBUTE=uid
      - LDAP_FULLNAME_ATTRIBUTE=cn
      - ADMODE=false
      - AD_OPT_FORCE_UNLOCK=false
      - AD_OPT_FORCE_PWD_CHANGE=false
      - AD_OPT_CHANGE_EXPIRED_PASSWORD=false
      - SAMBA_MODE=false
      - SHADOW_OPT_UPDATE_SHADOWLASTCHANGE=false
      - PASSWORD_HASH=MD5
      - PASSWORD_MIN_LENGTH=6
      - PASSWORD_MAX_LENGTH=30
      - PASSWORD_MIN_LOWERCASE=2
      - PASSWORD_MIN_UPPERCASE=1
      - PASSWORD_MIN_DIGIT=1
      - PASSWORD_MIN_SPECIAL=0
      - PASSWORD_NO_REUSE=true
      - PASSWORD_SHOW_POLICY=never
      - PASSWORD_SHOW_POLICY_POSITION=above
      - WHO_CAN_CHANGE_PASSWORD=user
      - QUESTIONS_ENABLED=false
      - LDAP_MAIL_ATTRIBUTE=mail
      - MAIL_FROM=530623756@qq.com
      - MAIL_FROM_NAME=Password Reset
      - NOTIFY_ON_CHANGE=true
      - SMTP_DEBUG=0
      - SMTP_HOST=smtp.qq.com   #smtp服务,要使用自己的
      - SMTP_AUTH_ON=true
      - SMTP_USER=530623756@qq.com   #smtp服务账号
      - SMTP_PASS=wyeennefrzunbjcg   #smtp服务账号密码
      - SMTP_PORT=465
      - SMTP_SECURE_TYPE=ssl
      - SMTP_AUTOTLS=false
      - USE_SMS=false
      - IS_BEHIND_PROXY=true
      - SHOW_HELP=true
      - LANG=en
      - DEBUG_MODE=false
      - SECRETEKEY=secretkey
      - USE_RECAPTCHA=false
      - RECAPTCHA_PUB_KEY=akjsdnkajnd
      - RECAPTCHA_PRIV_KEY=aksdjnakjdnsa
      - DEFAULT_ACTION=change

编排内容转换成具体编排文件,见2.3.1,不过不着急,一步一步操作下去才最好。

2.2、镜像

2.2.1、拉镜像

通过编排文件里面可以看出需要拉取三个镜像

osixia/openldap:latest
osixia/phpldapadmin:latest
registry.cn-hangzhou.aliyuncs.com/eryajf/self-service-password

运行编排文件起容器时,会自动拉取镜像,但为了防止起容器时日志太多导致新手不知道什么问题,这边我们先执行这三个镜像的拉取。一般来说,现在这个时间,电脑没有在国外,docker镜像拉取,必定会失败。如下三个图片;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
看得出来,三个镜像下载都失败了。如果是国外用户可以拉下来,国内就不一定了,具体原因这里不过多说明,可自行上网查询,本文提供解决方案,见下个小节:2.2.2

2.2.2、镜像包

这三个镜像包,我已存好,下载链接:
https://download.csdn.net/download/weixin_40331132/91746058

1、包解压使用
解压后,得到三个tar.gz包
将三个tar.gz包上载到部署ldap的宿主机
在这里插入图片描述

2、 加载Openldap

使用命令加载openldap镜像,命令:

docker load -i openldap.tar.gz

在这里插入图片描述
查看加载的镜像,此时镜像还没有名称版本

docker images

在这里插入图片描述
给镜像命名与版本

docker tag 31d1d6e16394 osixia/openldap:latest  #31d1d6e16394是镜像名称,具体自己的镜像id是什么就是什么
#通过docker iamges 查看是否命名成功

在这里插入图片描述

3、加载phpldapadmin

使用命令加载phpldapadmin镜像,命令:

docker load -i phpldapadmin.tar.gz   #加载

可以看出加载成功,使用docker images查看,Images id对上了,只是没有镜像名与版本
在这里插入图片描述
给镜像命名与版本

docker tag dbb580facde3 osixia/phpldapadmin:latest  #dbb580facde3是镜像的id,具体自己的镜像id是什么,这里填写什么

命名完成后,通过docker iamges 查看是否命名成功
在这里插入图片描述

4、加载self-service-password
使用命令加载phpldapadmin镜像,命令:

docker load -i self-service-password.tar.gz   #加载

可以看出加载成功,使用docker images查看,Images id对上了,只是没有镜像名与版本
在这里插入图片描述
给镜像命名与版本

docker tag 0c82d11421f1 registry.cn-hangzhou.aliyuncs.com/eryajf/self-service-password  #0c82d11421f1是镜像名称,具体自己的镜像id是什么就是什么。这里会发现一个小细节,我们只给了名称,没有给版本,它会自动给上latest版本号
#通过docker iamges 查看是否命名成功

在这里插入图片描述

好了,三个镜像全部加载并命名成功,可以使用docker compose编排文件快速起容器了。

2.3、起容器

起容器前,先回看2.1的编排文件,里面的注释内容都是要自己根据自己的需要,自已填写的,如密码,如ip,一定要填写正确,不正确,将无法运行。

2.3.1、创建编排文件

1、进入宿主机,创建一个ldap目录,进入到这个目录,新增一个compose.yaml编排文件,vi这个文件,按i插入2.1中的编排内容,记得相关信息要维护好
都是linux操作的基础,这里便不做多的述说,具体命令如下图:
在这里插入图片描述

使用cat compose.yaml查看编排文件,一切正常后,便可以开始起容器了
在这里插入图片描述

2.3.2、起容器

1、进入到ldap目录,输入命令

docker compose up -d  #运行容器编排,默认读取当前目录下的compose.yaml文件,也可以指定文件,这个可自行研究。

在这里插入图片描述

通过 docker ps查看容器启动情况,端口都出现了,表示启动成功。

在这里插入图片描述
如果这里没有启动成功,可以先查看编排文件里的内容是否正确,如果正常,可以私聊我来解决。

3、验证

phpldapadmin是管理服务,使用这个验证,在这里插入图片描述
它的容器映射出来的接口是6443,宿主机的ip是192.168.1.122(这个各位看自己的宿主机ip地址即可,编排文件里面也用到过)

所以在浏览器里输入 192.168.1.122:6443
打开如下图
在这里插入图片描述
点击 login,输入账号密码,编排文件里面有给出,点击Authenticate,登录成功,出现下图页面,验证了LDAP安装完美成功,可以进行企业域账号管理了
在这里插入图片描述

域名创建细节,见下一个博客。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魂尾ac

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值