写点什么

部署 OpenLDAP 对接到 DataEase 实现统一用户管理

  • 2023-02-22
    北京
  • 本文字数:2261 字

    阅读完需:约 7 分钟

部署 OpenLDAP 对接到 DataEase实现统一用户管理

1 使用场景

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

下面我们就来部署 Openldap 对接到 DataEase,实现用户统一账号登录 DataEase。

2 安装部署

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

yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache fast yum -y install docker-cemkdir -p /etc/docker tee /etc/docker/daemon.json <<-'EOF'{  "registry-mirrors": ["https://j6o4qczl.mirror.aliyuncs.com"]}EOFsystemctl daemon-reloadsystemctl restart docker
复制代码


部署 Openldap

docker run \-p 389:389 \-p 636:636 \--name de-ldap \--network bridge \--hostname deldap.com \--env LDAP_ORGANISATION="deldap" \--env LDAP_DOMAIN="deldap.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=192.168.1.7 \--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+端口



点击页面上的 “login”,登录;

Login DN:CN=admin,DC=deldap,DC=com

Password: 123456


3.2 创建 ou 及导入用户信息

3.2.1 创建 ou

按图操作,点击 dc,然后点击 “Create a child entry”;



选择 “Generic: Organisational Unit”;



输入一个 ou 名,ou 代表组织单位,可以理解为分组,我创建的 north、east,分别代表华东和华北大区的两个分组;



3.2.2 创建用户

dn: uid=xiaomei,ou=north,dc=deldap,dc=comou: northuid: xiaomeisn: 小美cn: xiaomeigivenName: xiaomeidisplayName: xiaomeimail: xiaomei@esgyn.localobjectClass: personobjectClass: organizationalPersonobjectClass: inetOrgPersonuserpassword: 123456
复制代码

以上信息包含用户信息:

uid:xiaomei

显示名字:小美

所属 ou:north

mail:xiaomei@esgyn.local

密码:123456

复制以上信息,在 phpldapadmin 界面,点击 “import”,粘贴;



最后,点击 “Proceed”,完成导入;


可以使用以上方法创建多个 ou 和用户,如下图:



4 在 DataEase 中配置 LDAP

使用 admin 用户登录 DataEase,系统管理 --> 系统配置 --> 认证设置 --> LDAP 设置

点击 “编辑”,填写 LDAP 相关配置信息;



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 中的用户及密码,点击登录



登录成功,确认用户信息



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。

用户头像

还未添加个人签名 2022-12-26 加入

还未添加个人简介

评论

发布
暂无评论
部署 OpenLDAP 对接到 DataEase实现统一用户管理_ldap_搞大屏的小北_InfoQ写作社区