51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

【安装部署】DataEase 集成对接 OpenLDAP 实现用户统一管理

1 使用场景 {#1-%E4%BD%BF%E7%94%A8%E5%9C%BA%E6%99%AF}

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

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


2 安装部署 {#2-%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2}

该部署方案使用 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-%E5%9C%A8-ldap-%E4%B8%AD%E5%88%9B%E5%BB%BA%E7%94%A8%E6%88%B7}

3.1 访问 phpldapadmin {#3.1-%E8%AE%BF%E9%97%AE-phpldapadmin}

浏览器输入 phpldapadmin 的服务器 IP+端口

1677031867975-b8c29861-fb11-4d63-88bc-5641c6d082ce-pveu.png

点击页面上的 "login",登录;

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

Password: 123456

3.2 创建ou及导入用户信息 {#3.2-%E5%88%9B%E5%BB%BAou%E5%8F%8A%E5%AF%BC%E5%85%A5%E7%94%A8%E6%88%B7%E4%BF%A1%E6%81%AF}

3.2.1 创建 ou {#3.2.1-%E5%88%9B%E5%BB%BA-ou}

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

1677032391486-d1665016-ff01-43d9-865f-2fa96bc289dd.png

选择 "Generic: Organisational Unit";

1677032560179-4b2e4e98-10ff-4088-8cc8-ecd0af41dd37-snrb.png

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

1677032484490-66c09dfd-4317-4359-8475-0ca5617eeaed.png

3.2.2 创建用户 {#3.2.2-%E5%88%9B%E5%BB%BA%E7%94%A8%E6%88%B7}

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",粘贴;

1677032902826-33a96a05-3171-4329-811b-32fd014e7824-pogw.png

最后,点击 "Proceed",完成导入;


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

1676953556372-fd3c4a5d-875f-4e9a-814e-5fbbbefe0123-tubd.png


4 在 DataEase 中配置 LDAP {#4-%E5%9C%A8-dataease-%E4%B8%AD%E9%85%8D%E7%BD%AE-ldap}

DataEase V1 版本参考以下步骤进行配置,DataEase V2 版本配置 LDAP 请参考官方文档:认证设置

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

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

1677033576300-996f8398-9bee-4085-a958-7bf063b86ab9.png

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 登录验证 {#5-%E7%99%BB%E5%BD%95%E9%AA%8C%E8%AF%81}

打开 DataEase 登录页面,选择 "LDAP" ,输入 LDAP 中的用户及密码,点击登录

1677033515587-422ae8fb-1ad2-45b6-a309-03ad8db3c984.png

注解:

用户过滤器 "(|(cn={0})(mail={0}))" 用于LDAP搜索操作,指定搜索条件。

在这个表达式中:

  • "(|...)" 是LDAP过滤器语法中的或运算符,表示以下两个条件之一成立即可。

  • "(cn={0})" 指定了"uid"属性必须等于替代"{0}"的实际值。

  • "(mail={0})" 指定了"mail"属性必须等于替代"{0}"的相同值。

如需修改用户过滤器中的配置,需使用 "LDAP 属性映射字段" 作为 "用户过滤器" 判断条件。


LDAP 配置及 DataEase对接的操作, 至此介绍完毕。


6 名词解释 {#6-%E5%90%8D%E8%AF%8D%E8%A7%A3%E9%87%8A}

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。











赞(0)
未经允许不得转载:工具盒子 » 【安装部署】DataEase 集成对接 OpenLDAP 实现用户统一管理