yearning部署 ldap验证登录 AD域配置

yearning本地部署与ldap验证登录

20200302持续更新改错:QQ1466429534
本文出现的所有数据均为实验,和真实无关
这里整理yearning关于ldap的使用实验内容

0.环境说明

虚机 静态IP 安装服务
win server 2012 192.168.255.200 AD DS、AD LDS
centos7 192.168.255.133 docker、mysql(docker)、yearning-go

AD域账户与密码:

CN 密码 DN uid sAMAccountName
Administrator Qq#1234 CN=Administrator,CN=Users,DC=zhenyun,DC=com 未设置 Administrator
小黑 Qq#1234 CN=小黑,OU=平台管理部,OU=平台管理中心,OU=技术部,DC=zhenyun,DC=com 未设置 小黑
小明 Qq#1234 CN=小明,OU=平台管理部,OU=平台管理中心,OU=技术部,DC=zhenyun,DC=com 25577 小明
具灿星 Pwd#25576 CN=具灿星,OU=平台管理部,OU=平台管理中心,OU=技术部,DC=zhenyun,DC=com 25576 小具
小红 Qq#1234 CN=具灿星,OU=平台开发部,OU=平台管理中心,OU=技术部,DC=zhenyun,DC=com 未设置 小红

yearning中LDAP设置管理员那条即可,LDAP方式登录的用户名是CN/uid/sAMAccountName中的一个,密码是AD域中设置的密码。
当yearning配置好管理员后,域中其他用户的信息都会根据LDAP_SCBASE快速定位LDAP_Search filter及其对应的密码。

1.docker安装mysql并用navicat连接

docker安装的mysql与本机的mysql是不共享的

docker search mysql
docker pull mysql
docker images

docker run -p 3305:3306 --name mysql -e MYSQL_ROOT_PASSWORD=a -d mysql
docker exec -it 10cc8179208a bash
mysql -uroot -p

使用本机的navicat来远程连接mysql,如果连接时报2059错误,原因是mysql8后,安装时选择了强加密规则caching_sha2_password,与之前的mysql5.7的mysql_native_password规则不同,navicate驱动目前不支持新加密规则:

alter user 'root'@'%' identified with mysql_native_password by 'a';
flush privileges;

在这里插入图片描述

2.下载安装docker-compose

这里安装docker-compose与本文无关!
去https://github.com/docker/compose/releases 确定一个最新的稳定版本更换掉:

curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version

3.yearning-go部署

1.1.下载

https://github.com/cookieY/Yearning/releases
选择最新版本,用xshell的sftp将文件传输到centos7

1.2.修改配置文件

vim conf.toml
Db是数据库名称,自己需要先建库,再初始化,这里是默认的Yearning,生产环境当然会修改的:

[Mysql]
Db = "Yearning"
Host = "127.0.0.1"
Port = "3305"
Password = "a"
User = "root"

[General]
SecretKey = "abchahacygjqqxyz"

关于SecretKey:SecretKey是token/数据库密码加密/解密的salt。
建议所有用户在初次安装Yearning之前将SecretKey更改(不更改将存在安全风险)
格式: 大小写字母均可, 长度必须为16位
特别注意:
此key仅可在初次安装时更改!之后不可再次更改!如再次更改会导致之前已存放的数据源密码无法解密,最终导致无法获取相关数据源信息

1.3.开始启动

建议所有用户在初次安装Yearning之前将SecretKey更改(不更改将存在安全风险)

# 初始化数据库,如要再次初始化,请先把yearning表删除,否则重复执行无效
# 把Yearning文件chmod 777 Yearning
# 在mysql数据库先创建名为Yearning的数据库 初始化操作做一次
./Yearning -m

# 启动服务 若以后出了问题,kill掉再启动
./Yearning -s -b "192.168.255.133" -p "8000"

数据库初始化:
在这里插入图片描述
启动服务:
20200228173011728.png)]
访问yearning平台:
http://192.168.255.133:8000

4.yearning ldap配置及实践

4.1.yearning ldap配置

4.1.1.yearning端配置

win server2012中对所有用户有查询权限的AD域管理员:
在这里插入图片描述

服务地址url:192.168.255.200:389
LDAP管理员DN:CN=Administrator,CN=Users,DC=zhenyun,DC=com
密码:Qq#1234
LDAP_Search filter:cn
LDAP_SCBASE:DC=zhenyun,DC=com

配置过滤规则,方便快速从LDAP服务器定位到用户信息:
LDAP_Search filter: cn/uid/sAMAccountName 指定后决定着用户登录名是哪个属性
LDAP_SCBASE: DC=XXX,DC=com 从哪个LDAP服务器查询(个人理解)
在这里插入图片描述

LDAP设置测试成功后,一定记得保存(页面最下面):
在这里插入图片描述

4.1.2.普通用户登录测试

win server2012中普通用户:
CN 密码 DN uid sAMAccountName
小明 Qq#1234 CN=小明,OU=平台管理部,OU=平台管理中心,OU=技术部,DC=zhenyun,DC=com 25577 小明

在这里插入图片描述

登录勾选ldap,输入用户名(cn):
在这里插入图片描述

登录成功,系统创建用户名为小明的用户:
在这里插入图片描述
本地admin用户查看用户表:
在这里插入图片描述

4.2.更多实验

4.2.1.LDAP_Search filter三种过滤规则

在这里插入图片描述
这里LDAP的查询过滤语法,决定的是LDAP用户登录名。

  • 这里实验对象是CN为具灿星的用户,将他的sAMAccountName设置为小具,uid设置为25576;
  • yearning的LDAP设置其他参数不变(4.1.1.),只将LDAP_Search filter修改为三种分别试一下:
    在这里插入图片描述
    果然,会出现三个用户,也就是LDAP中的一个用户,用他的 cn/uid/sAMAccountName 出现了三次:
    在这里插入图片描述
    因此,我们这里的LDAP_Search filter参数,尽量设置为LDAP中所有用户唯一的东西如CN。

4.2.2.yearning先注册用户,在LDAP方式登录一个同名用户

1.密码相同时

假设我们在yearning中创建一个名字为25577的用户,密码为Qq#1234
在这里插入图片描述
然后再登录LDAP中一个uid为25577的用户,看一下会有什么冲突:
在这里插入图片描述

在这里插入图片描述
用户25577使用ldap方式登录后,实际上共用25577这个用户,勾选LDAP与否都可以进行登录;
相当于之前我们是,登录一个LDAP用户,就生成同user名的用户;这里是倒过来,先注册一个用户,这个用户可以用ldap登录,当然也可以直接登录。

2.密码不同时
先注册一个名为小红、密码为Qq#2333的用户,再在AD域中创建一个名(CN)为小红、密码为Qq#1234的用户并启用;
在这里插入图片描述
ADSI:
在这里插入图片描述
登录:
结论: 登陆成功,这样看来,同登录用户名,实际上是两个账户。只是yearning逻辑上是,首次登录一个LDAP账户,就在表里创建一个同用户名的账号,这个账号密码明显不是之前的。
我们再来实验下,对象是具灿星:

具灿星/Pwd#25576 勾选LDAP可以登录,不勾选不可登陆;也就是说第一次登陆某个LDAP用户时候在表里同步创建的用户的密码究竟是不是原密码,我们用管理员修改表中的密码为Pwd#25576,再登录试下:这说明给的默认密码不是LDAP带过来的。

  • 那我们如何设计比较好:用LDAP中唯一的cn/uid/sAMAccountName中的CN,然后yearning只需要配置一个管理员账户,其他用户一定是有人不使用平台不登录的,可以在AD域中所有用户批量创建好,然后会使用yearning平台的一登录自然出现了账户,不使用的我们可以用管理员开启用户注册/或者管理员根据信息一条一条补全。

5.错误解决

docker创建容器的时候报错WARNING: IPv4 forwarding is disabled. Networking will not work.

# vim  /usr/lib/sysctl.d/00-system.conf
# 添加
net.ipv4.ip_forward=1
# 重启network
# systemctl restart network

6.AD DS和AD LDS的使用

如果 不知道DN
AD DS的AD用户和计算机:
在这里插入图片描述
AD LDS的ADSI编辑器:
在这里插入图片描述
管理员的DN:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_33997198/article/details/104607102