侧边栏壁纸
  • 累计撰写 208 篇文章
  • 累计创建 16 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

docker部署 OpenLDAP,实现账号的统一管理

Wake
2023-08-22 / 0 评论 / 2 点赞 / 2,405 阅读 / 1,384 字

1.使用场景

随着企业内部各种开源平台越来越多,例如:gitlab、Jenkins、JumpServer、Rancher等,账号维护变成一件繁琐的事情,这时需要一个统一账号维护的平台,每人只需一个账号,在公司内部平台通用。而大多数开源平台都支持 LDAP,因此只要搭建好 LDAP 服务,将企业内部这些平台都对接到 LDAP,即可实现统一账号管理; 下面我们就来部署 Openldap 对接到 后续的开源平台上。

2.安装部署

该部署方案使用 Docker 安装,如果你的服务器没有安装 Docker,先安装 Docker

部署LDAP

docker run \
-p 389:389 \
-p 636:636 \
--name wake-ldap \
--network bridge \
--hostname wakeldap.com \
--env LDAP_ORGANISATION="wakeldap" \
--env LDAP_DOMAIN="wakeldap.com" \
--env LDAP_ADMIN_PASSWORD="123456" \
--volume /opt/ldap/certificates:/container/service/slapd/assets/certs \
--env LDAP_TLS_CRT_FILENAME=ldap.crt \
--env LDAP_TLS_KEY_FILENAME=ldap.key \
--env LDAP_TLS_CA_CRT_FILENAME=ca.crt \
--detach osixia/openldap

注释如下:
-p 389:389 TCP/IP访问端口 -p 636:636 SSL连接端口 --name de-ldap 容器名称为 de-ldap --network bridge 连接默认的bridge网络 --hostname deldap.com 设置容器主机名称为 deldap.com --env LDAP_ORGANISATION=“deldap” 配置LDAP组织名称 --env LDAP_DOMAIN=“deldap.com” 配置LDAP域名 --env LDAP_ADMIN_PASSWORD=“123456” 配置LDAP密码

部署 phpLDAPadmin

docker run \
-d \
--privileged \
-p 8989:80 \
--name myldapadmin \
--env PHPLDAPADMIN_HTTPS=false \
--env PHPLDAPADMIN_LDAP_HOSTS=172.31.21.37 \
--detach osixia/phpldapadmin

注释如下:
-d 分离模式启动容器 --privileged 特权模式启动(使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。) --env PHPLDAPADMIN_HTTPS=false 禁用HTTPS --env PHPLDAPADMIN_LDAP_HOSTS =192.168.1.7 配置openLDAP的IP或者域名,我安装ldap机器IP就是192.168.1.7。

3.在 LDAP 中创建用户

3.1 访问 phpldapadmin

浏览器输入 phpldapadmin 的服务器 IP+端口
image-1692666727063
点击页面上的 “login”,登录; Login DN:CN=admin,DC=deldap,DC=com
Password: 123456

3.2创建ou及导入用户信息

创建 ou
按图操作,点击 dc,然后点击 “Create a child entry”;
image-1692666778190
选择 “Generic: Organisational Unit”;
image-1692666794882
输入一个 ou 名,ou 代表组织单位,可以理解为分组,我创建的 north、east,分别代表华东和华北大区的两个分组;
image-1692666811022
注意:
如果公司规模比较大可以将ou划分成部门的名称,对于人员的管理会更清晰

创建用户

dn: uid=xiaomei,ou=north,dc=deldap,dc=com
ou: north
uid: xiaomei
sn: 小美
cn: xiaomei
givenName: xiaomei
displayName: xiaomei
mail: xiaomei@esgyn.local
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
userpassword: 123456

以上信息包含用户信息:

uid:xiaomei 显示名字:小美 所属 ou:north mail:xiaomei@esgyn.local 密码:123456

复制以上信息,在 phpldapadmin 界面,点击 “import”,粘贴;
image-1692666940135
最后,点击 “Proceed”,完成导入;
可以使用以上方法创建多个 ou 和用户,如下图:
image-1692666980174

4 在 DataEase 中配置 LDAP

使用 admin 用户登录DataEase,系统管理 --> 系统配置 --> 认证设置 --> LDAP 设置 点击 “编辑”,填写 LDAP 相关配置信息;
image-1692667037355

LDAP 地址 (部署 LDAP 服务的地址)
ldap://192.168.1.7:389

绑定 DN (填写 admin 的 DN)
cn=admin,dc=deldap,dc=com

用户 OU (多个 ou 可以用 | 分割,以下配置是 north 和 east 两个组织)
ou=north,dc=deldap,dc=com|ou=east,dc=deldap,dc=com

用户过滤器 (获取用户信息到 DataEase,以下是获取 用户 和 邮箱信息)
(|(uid={0})(mail={0}))

LDAP 属性映射 (DataEase 用户字段对应 LDAP 用户字段)
 {"userName":"cn","nickName":"sn","email":"mail"}

配置完成后点击 “测试连接” 并 “保存”;

5 登录测试

打开 DataEase 登录页面,选择 “LDAP” ,输入 LDAP 中的用户及密码,点击登录
image-1692667083388
登录成功,确认用户信息
image-1692667097637
LDAP 配置及 DataEase对接的操作, 至此介绍完毕。

6 名词解释

DN:Distinguished Name 类似于DNS,DN与DNS的区别是:组成DN的每个值都有一个属性类型,例如: deldap.com是一个dns,那么用dn表示为:dc=deldap,dc=com 级别越高越靠后。 登录名 cn=admin,dc=deldap,dc=com 就是一条 DN。

CN:common name 通用名 对象的属性为CN,例如一个用户的名字为:张三,那么“张三”就是一个CN。

OU : OrganizationUnit 组织单位 o和ou都是ldap目录结构的一个属性,建立目录的时候可选新建o,ou 等。在配置我司交换设备ldap的时候具体是配置ou,o还是cn等,要具体看ldap服务器的相应目录是什么属性。

o:organizationName 组织名

uid: userid 对象的属性为uid,例如我司一个员工的名字为:zsq,他的UID为:z02691,ldap查询的时候可以根据cn,也可以根据uid。配置ldap查询的时候需要考虑用何种查询方式。

DC:Domain Component DC类似于dns中的每个元素,例如deldap.com,“.”符号分开的两个单词可以看成两个DC。

2

评论区