SQL审核平台 Archery 之集成 Ldap 篇

休言女子非英物,夜夜龙泉壁上鸣。这篇文章主要讲述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账号登录测试
SQL审核平台 Archery 之集成 Ldap 篇

文章图片

?    至此,Archery 与 Ldap 两者已经完全 " 打通" ,Ldap 的账号可以顺利登录 Archery 了!
提示:Ldap 里面的账号,只有登录过 Archery 平台,才能够在 " 用户管理 " 里面看得到
四、提交SQL测试?    通过上面的步骤,已经是实现了使用Ldap 账号登录完美登录到 Archery 平台了,但是,真正想再操作的时候,则会发现--- 实例无法选择、组无法选择 、点击 " 提交SQL " ,提示如下:
SQL审核平台 Archery 之集成 Ldap 篇

文章图片

?    上面的具体原因,其实也很简单:我们只是把 Ldap 到 Archery 的账号登录通道打通了,但是相关权限都没有设置,所有这里登录进去了就是这样的情况
五、配置相关权限
  1. 创建账号
    在 Ldap 里面创建三个测试账号:testsql_01 、testsql_02、testsql_03,属于 Ldap 里面什么部门什么组都没关系的
     
  2. 分别使用三个账号登录一次 Archery 平台
    提醒 :Ldap 里面的账号,只有在 Archery 平台登录过一次,才能够在 " 用户管理" 里面看得到
     
  3. 编辑三个账号,设置对应的权限
    依据前面设置的审核流程(RD-DBA-PM),进行下面的操作:
    • testsql_01加入到 RD 组,资源组为 测试组
    • testsql_02加入到 PM 组,资源组为 测试组、开发组
    • testsql_03加入到DBA组,资源组为 测试组、运维组
六、审核流程测试
  1. 浏览器里面用 testsql_01 登录,进行 SQL 上线提交 操作,具体操作流程如下,操作截图如下:
        " SQL审核" --- " SQL上线" --- " 提交SQL" --- 右侧的方框输入 " ( 上线名单 ) -- 选择组 -- 选择实例 -- 选择数据库 -- 是否备份 -- 选择可以执行的时间范围 " --- " SQL监测" --- " SQL提交"
    SQL审核平台 Archery 之集成 Ldap 篇

    文章图片

?截图说明:
  • 红色方框内是必选或必填项,蓝色方框是可选项,紫色椭圆是执行按钮
  • 最上面的是选择编辑好的SQL文件直接执行,无须复制 ,选择好SQL文件,SQL语句就直接导入到左边来了
  • 上线名单里面简要写下此处操作的内容信息等,自定义随意填写,建议写的有辨识度些方便后续操作
  • SQL备份要在系统配置里的相应地方进行配置备份库(地址账号相关等),流程完成后中备份库中就可以查询到了
     
    1. 上面操作完成后,界面如下:
    可以看到 工单详情 和 工单日志 ,还有 操作信息 、终止流程
    【SQL审核平台 Archery 之集成 Ldap 篇】里面有具体的操作内容、现在的操作流程、下面的流程、审批人等信息
    SQL审核平台 Archery 之集成 Ldap 篇

    文章图片

     
    1. 浏览器里面用 testsql_02 登录,进行 SQL 上线审核 操作,首先看到的是如下的截图:
      SQL审核平台 Archery 之集成 Ldap 篇

      文章图片

       
    2. 点击工单名称栏下面的刚才提交的那条工单,得到如下图所示,点击 " 审核通过 "
      SQL审核平台 Archery 之集成 Ldap 篇

      文章图片

       
    3. 浏览器里面用 testsql_03 登录,进行 SQL 上线的执行操作,登录后如下图
      SQL审核平台 Archery 之集成 Ldap 篇

      文章图片

       
    4. 点击工单名称栏下面的刚才提交的那条工单,得到如下图所示,点击 " 审核通过 "
      SQL审核平台 Archery 之集成 Ldap 篇

      文章图片

       
    5. 点击 " 审核通过 " ,到了下图所示界面 ,再点击 " 立即执行 " ,在弹出的对话框中确认即可。至此全部流程走完!
      SQL审核平台 Archery 之集成 Ldap 篇

      文章图片

    推荐阅读