DataEase 集成对接 openLDAP 实现用户统一管理

转载自:https://kb.fit2cloud.com/?p=7a85bf7e-beef-4381-a16e-0bc20fd047ae

1 使用场景

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

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

2 安装部署

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

#安装 Docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://j6o4qczl.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl 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=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”,粘贴;

最后,点击 “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。

posted @ 2023-09-16 11:23  哈喽哈喽111111  阅读(135)  评论(0编辑  收藏  举报