利用 Docker 为自己打造一套 OpenLdap 认证系统

Ldap

轻型目录访问协议(英文:Lightweight Directory Access Protocol,缩写:LDAP/ˈɛldæp/)是一个开放的,中立的,工业标准的应用协议,通过 IP 协议提供访问控制和维护分布式信息的目录信息。

摘自维基百科,关于 LDAP 概念和原理可以看看这篇文章 LDAP 概念和原理介绍

服务端

镜像

1
docker pull osixia/openldap:1.3.0

容器

1
2
3
4
5
6
7
8
docker run -p 389:389 --name openldap --restart=always \
--env LDAP_ORGANISATION="jakehu" \
--env LDAP_DOMAIN="jakehu.me" \
--env LDAP_ADMIN_PASSWORD="jakehu" \
--env LDAP_CONFIG_PASSWORD="jakehu" \
--volume /data/database:/var/lib/ldap \
--volume /data/config:/etc/ldap/slapd.d \
--detach osixia/openldap:1.3.0

参数

端口:默认服务端口使用 389 端口
LDAP_ORGANISATION:机构组织
LDAP_DOMAIN:域
LDAP_ADMIN_PASSWORD:管理员 (admin) 密码
LDAP_CONFIG_PASSWORD:配置管理密码
/etc/ldap/slapd.d:配置文件
/var/lib/ldap:后端数据,默认为 mdb

客户端

镜像

1
docker pull ldapaccountmanager/lam:7.2.RC1

容器

1
2
3
4
5
6
7
docker run -d --restart=always --name ldapaccountmanager -p 9880:80 \
--link openldap:openldap \
--env LDAP_DOMAIN=jakehu.me \
--env LAM_LANG=zh_CN \
--env LDAP_SERVER=ldap://openldap:389 \
--env LAM_PASSWORD=jakehu \
--detach ldapaccountmanager/lam:7.2.RC1

参数

LAM_LANG:语言
LDAP_SERVERLdap 服务器
LAM_PASSWORDlam 密码,默认用户名 lam

配置

接下来访问 http://IP:9880 就能看到下面画面

点击 LAM configuration 进入配置界面


这里的密码,就是我们设置的 LAM_PASSWORD

另外设置的 LDAP_SERVERLDAP_DOMAIN 都被体现出来了,最后在 Account types 中修改默认创建的两个组,这两个组会在首次登陆系统时提示创建

然后登陆创建我们刚设置的两个组

看下结构树,两个分组已经被创建了

到此就已经完成 docker 版的 openldaplam 的安装配置


o – organization(组织 - 公司)
ou – organization unit(组织单元 - 部门)
c - countryName(国家)
dc - domainComponent(域名)
sn – suer name(真实名称)
cn - common name(常用名称)