LDAP安装docker版

1、安装docker

复制代码
yum install -y yum-utils device-mapper-persistent-data lvm2   //安装docker依赖包
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo   //配置国内阿里云镜像仓库,解决镜像下载慢的问题。
yum install docker-ce docker-ce-cli containerd.io   //安装docker-ce服务
systemctl start docker          //启动docker命令
systemctl enable docker        //添加到开机启动项

2、拉取openldap与phpldapadmin镜像到本地

复制代码
docker pull osixia/openldap
docker pull osixia/phpldapadmin

3、运行镜像,启动openldap

1)、通过docker run命令运行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="nedy" \
    --env LDAP_DOMAIN="nedy.com" \
    --env LDAP_ADMIN_PASSWORD="nedy123" \
    --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="nedy" 配置 LDAP 组织名称

--env LDAP_DOMAIN="nedy.com" 配置 LDAP 域名

--env LDAP_ADMIN_PASSWORD="nedy123" 配置 LDAP 密码

默认登录用户名:admin

查看openldap版本

复制代码
# docker exec -it 5e2cc091b67f slapd -V
@(#) $OpenLDAP: slapd 2.4.57+dfsg-1~bpo10+1 (Jan 30 2021 06:59:51) $
        Debian OpenLDAP Maintainers <pkg-openldap-devel@lists.alioth.debian.org>

4、运行镜像,启动phpldapadmin

通过docker run命令运行osixia/phpldapadmin

复制代码
docker run \
-d \
--privileged \
-p 8080:80 \
--name ldapadmin \
--env PHPLDAPADMIN_HTTPS=false \
--env PHPLDAPADMIN_LDAP_HOSTS=xx.xx.xx.xx \
--detach osixia/phpldapadmin

注释如下:

-d 分离模式启动容器

--privileged 特权模式启动(使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。)

--env PHPLDAPADMIN_HTTPS=false 禁用HTTPS

--env PHPLDAPADMIN_LDAP_HOSTS =xx.xx.xx.xx 配置openLDAP的IP或者域名

5、登录

通过访问phpldapadmin管理地址http://xx.xx.xx.xx:8080 进行登录与管理

点击login进行登录,

复制代码
Login DN:cn=admin,dc=nedy,dc=com
Password:nedy123

6、配置

首先要新建 Organisational Unit、Generic(组织单位),在该组织下新建Posix Group(默认用户组),然后再新建 User Account(用户帐户),按照顺序依次创建即可。

选择:Create a child entry,按顺序创建

如新建组织单位:ops,用户组:Users,用户帐户:rivalv, 密码:123456@qw如下图:

此时该用户的dn为cn=rivalv,ou=People,dc=nedy,dc=com如果想使用uid来识别用户可以在界面中rename修改用户的dn。

为该用户添加新的属性Add new attribute,如添加Email,输入用户邮箱即可

选择邮箱,输入邮箱地址

7,slapcat查询

复制代码
[root@aliyuan-ops-01 ~]# docker exec -it 9e05b69b72ea slapcat -v
# id=00000001
dn: dc=nedy,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
dc: nedy
structuralObjectClass: organization
entryUUID: 1c300e7e-588d-103c-8772-5143870169d9
creatorsName: cn=admin,dc=nedy,dc=com
createTimestamp: 20220425024236Z
o: Server cn
entryCSN: 20220426015544.098594Z#000000#000#000000
modifiersName: cn=admin,dc=nedy,dc=com
modifyTimestamp: 20220426015544Z

# id=0000000a
dn: ou=People,dc=nedy,dc=com
objectClass: organizationalUnit
objectClass: top
structuralObjectClass: organizationalUnit
entryUUID: cf5c56fe-58c6-103c-8770-4b5b8f901765
creatorsName: cn=admin,dc=nedy,dc=com
createTimestamp: 20220425093538Z
ou: People
entryCSN: 20220426015838.234595Z#000000#000#000000
modifiersName: cn=admin,dc=nedy,dc=com
modifyTimestamp: 20220426015838Z

# id=0000000c
dn: ou=Group,dc=nedy,dc=com
ou: Group
objectClass: organizationalUnit
objectClass: top
structuralObjectClass: organizationalUnit
entryUUID: 39debd90-594f-103c-8775-4b5b8f901765
creatorsName: cn=admin,dc=nedy,dc=com
createTimestamp: 20220426015208Z
entryCSN: 20220426015208.582659Z#000000#000#000000
modifiersName: cn=admin,dc=nedy,dc=com
modifyTimestamp: 20220426015208Z

# id=0000000d
dn: cn=Users,ou=People,dc=nedy,dc=com
cn: Users
gidNumber: 500
objectClass: posixGroup
objectClass: top
structuralObjectClass: posixGroup
entryUUID: 7b2563b6-5950-103c-8776-4b5b8f901765
creatorsName: cn=admin,dc=nedy,dc=com
createTimestamp: 20220426020107Z
entryCSN: 20220426020107.594296Z#000000#000#000000
modifiersName: cn=admin,dc=nedy,dc=com
modifyTimestamp: 20220426020107Z

# id=0000000e
dn: uid=tonglv,ou=People,dc=nedy,dc=com
givenName: tong
sn: lv
cn: tonglv
uid: tonglv
userPassword:: e01ENX1VZnM3ek5lYUhIS25VejBaU0NJeFlBPT0=
uidNumber: 1000
gidNumber: 500
homeDirectory: /home/users/tonglv
loginShell: /bin/bash
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
structuralObjectClass: inetOrgPerson
entryUUID: 9cd614ce-5950-103c-8777-4b5b8f901765
creatorsName: cn=admin,dc=nedy,dc=com
createTimestamp: 20220426020204Z
mail: tonglv@livemood.net
entryCSN: 20220426021236.689026Z#000000#000#000000
modifiersName: cn=admin,dc=nedy,dc=com
modifyTimestamp: 20220426021236Z

# id=0000000f
dn: cn=rivalv,ou=People,dc=nedy,dc=com
givenName: riva
sn: lv
cn: rivalv
uid: rivalv
userPassword:: e01ENX1VZnM3ek5lYUhIS25VejBaU0NJeFlBPT0=
uidNumber: 1001
gidNumber: 500
homeDirectory: /home/users/rivalv
loginShell: /bin/sh
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
structuralObjectClass: inetOrgPerson
entryUUID: 71a49ba8-5951-103c-8778-4b5b8f901765
creatorsName: cn=admin,dc=nedy,dc=com
createTimestamp: 20220426020801Z
entryCSN: 20220426020801.147551Z#000000#000#000000
modifiersName: cn=admin,dc=nedy,dc=com
modifyTimestamp: 20220426020801Z

8, OpenLDAP自助修改或重置密码服务Self Service Password

Docker部署LDAP自助密码服务self-service-password

下载镜像

复制代码
docker pull grams/ltb-self-service-password

下载配置文件config.inc.php:

复制代码
wget https://raw.githubusercontent.com/grams/docker-LTB-self-service-password/master/assets/config.inc.php

修改config.inc.php中的内容:
$ldap_url = "ldap://192.168.61.100:389";
$ldap_binddn = "cn=manager,dc=frognew,dc=com";
$ldap_bindpw = "password of manager";
$ldap_base = "dc=frognew,dc=com";

$hash = "SSHA";
$pwd_min_length = 8;
$pwd_max_length = 12;
$pwd_min_lower = 1;
$pwd_min_upper = 1;
$pwd_min_digit = 1;

$use_questions = false;

$mail_from = "xxx@163.com";
$notify_on_change = true;
$mail_smtp_host = 'smtp.163.com';
$mail_smtp_auth = true;
$mail_smtp_user = 'xxx@163.com';
$mail_smtp_pass = 'smtppass';
$mail_smtp_port = 25;
$mail_smtp_timeout = 30;

$use_sms = false;

运行容器

复制代码
docker run -p 8765:80 -d \
-v ~/config.inc.php:/usr/share/self-service-password/conf/config.inc.php \
--name ldap-ssp \
grams/ltb-self-service-password

http://xxx:8765

相关推荐
问道飞鱼1 小时前
【Linux知识】Shell 脚本参数详解:从基础到高级应用
linux·运维·服务器·shell
观音山保我别报错1 小时前
文件操作指南
linux·运维·服务器
一只栖枝1 小时前
K8s 认证级别怎么选?适配不同运维场景
云原生·容器·kubernetes·k8s·cka
Yeliang Wu2 小时前
k8s上部署open-webUI
云原生·容器·kubernetes·openwebui
NetInside_2 小时前
基于 Gartner 2025 报告:数字体验监测(DEM)核心价值与企业落地指南
运维·云原生
weixin_307779132 小时前
Jenkins 多分支流水线自动化引擎:GitHub Branch Source 插件完全指南
运维·架构·自动化·jenkins
哲Zheᗜe༘2 小时前
K8S-Ingress资源对象
云原生·容器·kubernetes
孫治AllenSun2 小时前
【Doris】运维命令
运维·服务器·网络
我科绝伦(Huanhuan Zhou)3 小时前
Oracle控制文件、SCN与检查点机制深度解析及数据库初始化原理
运维·数据库·oracle