ITPub博客

首页 > 数据库 > MySQL > SQL审核平台 Archery v1.8.0 LDAP功能配置步骤

SQL审核平台 Archery v1.8.0 LDAP功能配置步骤

原创 MySQL 作者:chenfeng 时间:2022-05-13 13:16:58 0 删除 编辑

一、安装相关包


1、安装LDAP相关的扩展包

[root@localhost ~]# docker ps

# docker ps

CONTAINER ID   IMAGE                       COMMAND                  CREATED       STATUS         PORTS                                                            NAMES

1bb1c633de94   mysql:5.7                   "docker-entrypoint.s…"   3 weeks ago   Up 3 weeks     3306/tcp, 33060/tcp, 0.0.0.0:3307->3307/tcp, :::3307->3307/tcp   mysql

10a1a24b437a   redis:5                     "docker-entrypoint.s…"   3 weeks ago   Up 3 weeks     6379/tcp                                                         redis

75054a146810   hhyo/inception              "/bin/sh -c 'nohup /…"   3 weeks ago   Up 3 weeks     6669/tcp                                                         inception

87cfaee82763   hhyo/archery:1.8.0          "dockerize -wait tcp…"   3 weeks ago   Up 7 minutes   0.0.0.0:9123->9123/tcp, :::9123->9123/tcp                        archery

02b26516ccea   hanchuanchuan/goinception   "/usr/local/bin/dumb…"   3 weeks ago   Up 3 weeks     4000-4001/tcp                                                    goinception


[root@localhost ~]# docker exec -it 87 bash

[root@c3fe74f742ac archery]# yum -y install openldap-devel


2、安装PYTHON依赖库

# 缺少的话在浏览器登陆时会报错:"500 Internal Server Error"

[root@c3fe74f742ac archery]# source /opt/venv4archery/bin/activate

[root@c3fe74f742ac archery]# pip install django-auth-ldap==1.3.0  -i  --trusted-host pypi.douban.com --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 87

[root@localhost ~]# docker ps  | grep archery

87cfaee82763   hhyo/archery:1.8.0          "dockerize -wait tcp…"   3 weeks ago   Up 9 minutes   0.0.0.0:9123->9123/tcp, :::9123->9123/tcp                        archery


二、编辑配置文件


1、进入相关容器修改配置文件

[root@localhost ~]# docker exec -it 87 bash

[root@87cfaee82763 archery]# yum -y install vim


[root@87cfaee82763 archery]# cd /opt/archery/archery


[root@87cfaee82763 archery]# ls

asgi.py  __init__.py  __pycache__  settings.py  settings.py.bak  urls.py  wsgi.py


[root@c3fe74f742ac archery]# cp settings.py settings.py.bak

[root@c3fe74f742ac archery]# vim settings.py  ( 修改 LDAP 相关的部分如下内容 )


# LDAP

#ENABLE_LDAP = False

ENABLE_LDAP = True

if ENABLE_LDAP:

    import ldap

    from django_auth_ldap.config import LDAPSearch


    AUTHENTICATION_BACKENDS = (

        'django_auth_ldap.backend.LDAPBackend',  # 配置为先使用LDAP认证,如通过认证则不再使用后面的认证方式

        'django.contrib.auth.backends.ModelBackend',  # django系统中手动创建的用户也可使用,优先级靠后。注意这2行的顺序

    )


    AUTH_LDAP_SERVER_URI = "ldap://192.168.1.1"

    AUTH_LDAP_BIND_DN = "cn=admin,dc=xxxxx,dc=cn"

    AUTH_LDAP_BIND_PASSWORD = "xxxxxxx"

    AUTH_LDAP_USER_SEARCH = LDAPSearch('ou=user,dc=xxxxxx,dc=cn',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"

    }




2、重启下相关容器

[root@localhost ~]# docker restart 87

[root@localhost ~]# docker ps  | grep archery

87cfaee82763   hhyo/archery:1.8.0          "dockerize -wait tcp…"   3 weeks ago   Up 13 minutes   0.0.0.0:9123->9123/tcp, :::9123->9123/tcp                        archery


3.查看docker logs日志:

# docker logs archery -f --tail=50

[2022-05-12 16:39:20 +0800] [39] [INFO] Started server process [39]

[2022-05-12 16:39:20 +0800] [39] [INFO] Waiting for application startup.

[2022-05-12 16:39:20 +0800] [39] [INFO] ASGI 'lifespan' protocol appears unsupported.

[2022-05-12 16:39:20 +0800] [39] [INFO] Application startup complete.

[2022-05-12 16:39:20 +0800] [40] [INFO] Started server process [40]

[2022-05-12 16:39:20 +0800] [40] [INFO] Waiting for application startup.

[2022-05-12 16:39:20 +0800] [40] [INFO] ASGI 'lifespan' protocol appears unsupported.

[2022-05-12 16:39:20 +0800] [40] [INFO] Application startup complete.

[2022-05-12 16:39:20 +0800] [41] [INFO] Started server process [41]

[2022-05-12 16:39:20 +0800] [41] [INFO] Waiting for application startup.

[2022-05-12 16:39:20 +0800] [41] [INFO] ASGI 'lifespan' protocol appears unsupported.

[2022-05-12 16:39:20 +0800] [41] [INFO] Application startup complete.

[2022-05-12 16:39:47,540][ThreadPoolExecutor-0_0:140568935855872][task_id:django_auth_ldap][backend.py:657][WARNING]- cn=zhangyu,ou=user,dc=ienglish,dc=cn does not have a value for the attribute displayname

[2022-05-12 16:40:36,595][ThreadPoolExecutor-0_0:140568935855872][task_id:django_auth_ldap][backend.py:657][WARNING]- cn=zhaoyanchang,ou=user,dc=ienglish,dc=cn does not have a value for the attribute displayname

[2022-05-12 16:40:56,469][ThreadPoolExecutor-0_0:140568935855872][task_id:django_auth_ldap][backend.py:657][WARNING]- cn=zhangyu,ou=user,dc=ienglish,dc=cn does not have a value for the attribute displayname

2022/05/12 16:55:32 Received signal: terminated

2022/05/12 16:55:32 Command exited with error: signal: terminated

2022/05/12 16:55:33 Waiting for: tcp://mysql:3306

2022/05/12 16:55:33 Waiting for: tcp://redis:6379

2022/05/12 16:55:33 Connected to tcp://redis:6379

2022/05/12 16:55:33 Connected to tcp://mysql:3306

切换python运行环境

修改重定向端口

启动nginx

收集所有的静态文件到STATIC_ROOT

启动Django Q cluster

启动服务

[2022-05-12 16:55:35 +0800] [38] [INFO] Starting gunicorn 20.0.4

[2022-05-12 16:55:35 +0800] [38] [INFO] Listening at:  (38)

[2022-05-12 16:55:35 +0800] [38] [INFO] Using worker: uvicorn.workers.UvicornWorker

[2022-05-12 16:55:35 +0800] [40] [INFO] Booting worker with pid: 40

[2022-05-12 16:55:35 +0800] [41] [INFO] Booting worker with pid: 41

[2022-05-12 16:55:35 +0800] [42] [INFO] Booting worker with pid: 42

[2022-05-12 16:55:35 +0800] [43] [INFO] Booting worker with pid: 43

[2022-05-12 16:55:35 +0800] [40] [INFO] Started server process [40]

[2022-05-12 16:55:35 +0800] [40] [INFO] Waiting for application startup.

[2022-05-12 16:55:35 +0800] [40] [INFO] ASGI 'lifespan' protocol appears unsupported.

[2022-05-12 16:55:35 +0800] [40] [INFO] Application startup complete.

[2022-05-12 16:55:35 +0800] [41] [INFO] Started server process [41]

[2022-05-12 16:55:35 +0800] [41] [INFO] Waiting for application startup.

[2022-05-12 16:55:35 +0800] [41] [INFO] ASGI 'lifespan' protocol appears unsupported.

[2022-05-12 16:55:35 +0800] [41] [INFO] Application startup complete.

[2022-05-12 16:55:35 +0800] [42] [INFO] Started server process [42]

[2022-05-12 16:55:35 +0800] [42] [INFO] Waiting for application startup.

[2022-05-12 16:55:35 +0800] [42] [INFO] ASGI 'lifespan' protocol appears unsupported.

[2022-05-12 16:55:35 +0800] [42] [INFO] Application startup complete.

[2022-05-12 16:55:35 +0800] [43] [INFO] Started server process [43]

[2022-05-12 16:55:35 +0800] [43] [INFO] Waiting for application startup.

[2022-05-12 16:55:35 +0800] [43] [INFO] ASGI 'lifespan' protocol appears unsupported.

[2022-05-12 16:55:35 +0800] [43] [INFO] Application startup complete.



4.用ldap账号登录页面进行测试。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15498/viewspace-2893931/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
交流MySQL,PolarDB/PolarDB-X,PostgreSQL,MongoDB和Redis技术。

注册时间:2015-12-07

  • 博文量
    784
  • 访问量
    2689101