休言女子非英物,夜夜龙泉壁上鸣。这篇文章主要讲述SQL审核平台 Archery 之集成 Ldap 篇相关的知识,希望能为你提供帮助。
一、安装相关包
1、安装LDAP相关的扩展包
[root@localhost ~]# docker ps
CONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
a333e364b407redis:5"docker-entrypoint.s…"2 weeks agoUp 23 hours6379/tcpredis
8ec336fb9bd7hanchuanchuan/goinception"/usr/local/bin/dumb…"2 weeks agoUp 23 hours4000/tcpgoinception
c3fe74f742achhyo/archery:1.8.0"dockerize -wait tcp…"2 weeks agoUp 23 hours0.0.0.0:9123->
9123/tcparchery
70f045f968b5mysql:5.7"docker-entrypoint.s…"2 weeks agoUp 23 hours0.0.0.0:3306->
3306/tcp, 33060/tcpmysql
c225ba8127f4hhyo/inception"/bin/sh -c nohup /…"2 weeks agoUp 23 hours6669/tcpinception[root@localhost ~]# docker exec -it c3 bash
[root@c3fe74f742ac archery]# yum -y install openldap-devel 2、安装python依赖库
# 缺少的话在浏览器登陆时会报错:"500 Internal Server Error",其原因是 Django 3.x 版本移除了部分用于兼容Python2 的 API
[root@c3fe74f742ac archery]# source /opt/venv4archery/bin/activate
[root@c3fe74f742ac archery]# pip install django-auth-ldap==1.3.0 --upgrade pip
[root@c3fe74f742ac archery]# pip install six[root@c3fe74f742ac archery]# cd /opt/venv4archery/lib/python3.8/site-packages/
[root@c3fe74f742ac archery]# cp six.py /opt/venv4archery/lib/python3.8/site-packages/django/utils/3、重启下相关容器
[root@localhost ~]# docker restart c3
[root@localhost ~]# docker ps| grep archery
c3fe74f742achhyo/archery:1.8.00.0.0.0:9123->
9123/tcparchery
二、编辑配置文件
1、进入相关容器修改配置文件
[root@localhost ~]# docker exec -it c3 bash
[root@c3fe74f742ac archery]# yum -y install vim( 非必须步骤)[root@c3fe74f742ac archery]# cd /opt/archery/archery
[root@c3fe74f742ac archery]# ls
asgi.py__init__.py__pycache__settings.pyurls.pywsgi.py[root@c3fe74f742ac archery]# cp settings.py settings.py.bak
[root@c3fe74f742ac archery]# vim settings.py( 修改 LDAP 相关的部分如下 )
# 前面标识了数字的是修改过的行(非行号):11、22、44、55、66,增加或者修改 ,33那边一行是注释掉# LDAP
11ENABLE_LDAP = True
if ENABLE_LDAP:
import ldap
from django_auth_ldap.config import LDAPSearchAUTHENTICATION_BACKENDS = (
django_auth_ldap.backend.LDAPBackend,# 配置为先使用LDAP认证,如通过认证则不再使用后面的认证方式
django.contrib.auth.backends.ModelBackend,# django系统中手动创建的用户也可使用,优先级靠后。注意这2行的顺序
)22AUTH_LDAP_SERVER_URI = "ldap://172.20.20.XXX:389"
33# AUTH_LDAP_USER_DN_TEMPLATE = "cn=%(user)s,ou=xxx,dc=xxx,dc=xxx"
44AUTH_LDAP_BING_DN = cn=admin,dc=tfit,dc=com
55AUTH_LDAP_BING_PASSWORD = 对应账号的口令
66AUTH_LDAP_USER_SEARCH = LDAPSearch(ou=People,dc=tfit,dc=com,ldap.SCOPE_SUBTREE,(uid=%(user)s),)
AUTH_LDAP_ALWAYS_UPDATE_USER = True# 每次登录从ldap同步用户信息
AUTH_LDAP_USER_ATTR_MAP =# key为archery.sql_users字段名,value为ldap中字段名,用户同步信息
"username": "cn",
"display": "displayname",
"email": "mail"#关于LDAP 相关的配置默认就是这么多,也可以再增加一些其他的,如获取权限方式、是否设置缓存等信息,但是不建议设置!特别是配置成从LDAP获取权限,ARCHERY 管理权限的方式更为灵活和简单2、重启下相关容器
[root@localhost ~]# docker restart c3
[root@localhost ~]# docker ps| grep archery
c3fe74f742achhyo/archery:1.8.00.0.0.0:9123->
9123/tcparchery
三、使用LDAP账号登录测试
文章图片
? 至此,Archery 与 Ldap 两者已经完全 " 打通" ,Ldap 的账号可以顺利登录 Archery 了!
提示:Ldap 里面的账号,只有登录过 Archery 平台,才能够在 " 用户管理 " 里面看得到
四、提交SQL测试? 通过上面的步骤,已经是实现了使用Ldap 账号登录完美登录到 Archery 平台了,但是,真正想再操作的时候,则会发现--- 实例无法选择、组无法选择 、点击 " 提交SQL " ,提示如下:
文章图片
? 上面的具体原因,其实也很简单:我们只是把 Ldap 到 Archery 的账号登录通道打通了,但是相关权限都没有设置,所有这里登录进去了就是这样的情况
五、配置相关权限
- 创建账号
在 Ldap 里面创建三个测试账号:testsql_01 、testsql_02、testsql_03,属于 Ldap 里面什么部门什么组都没关系的
- 分别使用三个账号登录一次 Archery 平台
提醒 :Ldap 里面的账号,只有在 Archery 平台登录过一次,才能够在 " 用户管理" 里面看得到
- 编辑三个账号,设置对应的权限
依据前面设置的审核流程(RD-DBA-PM),进行下面的操作:
- testsql_01加入到 RD 组,资源组为 测试组
- testsql_02加入到 PM 组,资源组为 测试组、开发组
- testsql_03加入到DBA组,资源组为 测试组、运维组
- testsql_01加入到 RD 组,资源组为 测试组
- 浏览器里面用 testsql_01 登录,进行 SQL 上线提交 操作,具体操作流程如下,操作截图如下:
" SQL审核" --- " SQL上线" --- " 提交SQL" --- 右侧的方框输入 " ( 上线名单 ) -- 选择组 -- 选择实例 -- 选择数据库 -- 是否备份 -- 选择可以执行的时间范围 " --- " SQL监测" --- " SQL提交"
文章图片
- 红色方框内是必选或必填项,蓝色方框是可选项,紫色椭圆是执行按钮
- 最上面的是选择编辑好的SQL文件直接执行,无须复制 ,选择好SQL文件,SQL语句就直接导入到左边来了
- 上线名单里面简要写下此处操作的内容信息等,自定义随意填写,建议写的有辨识度些方便后续操作
- SQL备份要在系统配置里的相应地方进行配置备份库(地址账号相关等),流程完成后中备份库中就可以查询到了
- 上面操作完成后,界面如下:
【SQL审核平台 Archery 之集成 Ldap 篇】里面有具体的操作内容、现在的操作流程、下面的流程、审批人等信息
文章图片
- 浏览器里面用 testsql_02 登录,进行 SQL 上线审核 操作,首先看到的是如下的截图:
文章图片
- 点击工单名称栏下面的刚才提交的那条工单,得到如下图所示,点击 "
审核通过 "
文章图片
- 浏览器里面用 testsql_03 登录,进行 SQL 上线的执行操作,登录后如下图
文章图片
- 点击工单名称栏下面的刚才提交的那条工单,得到如下图所示,点击 "
审核通过 "
文章图片
- 点击 "
审核通过 "
,到了下图所示界面 ,再点击 "
立即执行 "
,在弹出的对话框中确认即可。至此全部流程走完!
文章图片
推荐阅读
- #私藏项目实操分享# Ngnix --day07
- #yyds干货盘点# Kubernetes 中有 GC(垃圾回收)吗((19))
- # yyds干货盘点 # 盘点JavaScript中的事件及事件的三种模型
- #yyds干货盘点# 基于STM32+ESP8266+华为云IoT设计的智能门锁
- 什么是CI/CD(不明白?一文教会你企业级CI/CD核心理论概念 #yyds干货盘点#)
- #yyds干货盘点# 系统学习 TypeScript——基础类型
- #yyds干货盘点#一个简单的websocket示例
- #yyds干货盘点#ABAP新语法
- Flutter 专题75 图解基本 TabBar 标签导航栏#yyds干货盘点#