美文网首页
Archery配置单点登录

Archery配置单点登录

作者: 这货不是王马勺 | 来源:发表于2024-05-20 18:06 被阅读0次

    https://blog.51cto.com/u_16099246/10466243

    1、安装LDAP相关的扩展包

    [root@localhost ~]# docker ps
    CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                               NAMES
    a333e364b407        redis:5                     "docker-entrypoint.s…"   2 weeks ago         Up 23 hours         6379/tcp                            redis
    8ec336fb9bd7        hanchuanchuan/goinception   "/usr/local/bin/dumb…"   2 weeks ago         Up 23 hours         4000/tcp                            goinception
    c3fe74f742ac        hhyo/archery:1.8.0          "dockerize -wait tcp…"   2 weeks ago         Up 23 hours         0.0.0.0:9123->9123/tcp              archery
    70f045f968b5        mysql:5.7                   "docker-entrypoint.s…"   2 weeks ago         Up 23 hours         0.0.0.0:3306->3306/tcp, 33060/tcp   mysql
    c225ba8127f4        hhyo/inception              "/bin/sh -c 'nohup /…"   2 weeks ago         Up 23 hours         6669/tcp                            inception
    
    [root@localhost ~]# docker exec -it c3 bash
    [root@c3fe74f742ac archery]# yum -y install openldap-devel 
    

    2、安装PYTHON依赖库
    先配置pypi

    ~/.pip/pip.conf
    

    在上述文件中添加或修改:

    [global]
    index-url = https://mirrors.h****n.com/repository/Pypi/simple/
    
    [install]
    trusted-host=mirrors.h****n.com
    

    缺少依赖库的话在浏览器登陆时会报错:"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==4.1.0  --upgrade pip
    [root@c3fe74f742ac archery]# pip install six
    
    #[root@c3fe74f742ac archery]# cd /opt/venv4archery/lib/python3.8/site-packages/
    [root@c3fe74f742ac archery]# cd /opt/venv4archery/lib/python3.9/site-packages/
    #[root@c3fe74f742ac archery]# cp six.py /opt/venv4archery/lib/python3.8/site-packages/django/utils/
    [root@c3fe74f742ac archery]# cp six.py /opt/venv4archery/lib/python3.9/site-packages/django/utils/
    

    3、重启下相关容器

    [root@localhost ~]# docker restart c3
    [root@localhost ~]# docker ps  | grep archery
    c3fe74f742ac        hhyo/archery:1.8.0            0.0.0.0:9123->9123/tcp           archery
    

    参考

    https://www.cnblogs.com/slim-liu/p/17102764.html
    

    配置LDAP

    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.py    urls.py   wsgi.py
    
    [root@c3fe74f742ac archery]# cp settings.py settings.py.bak
    [root@c3fe74f742ac archery]# vim settings.py  
    

    ( 修改 LDAP 相关的部分如下 )

    # 前面标识了数字的是修改过的行(非行号):11、22、44、55、66,增加或者修改 ,33那边一行是注释掉
    
    # LDAP
    11  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行的顺序
        )
    
    22    AUTH_LDAP_SERVER_URI = "ldap://172.20.20.XXX:389"
    33    # AUTH_LDAP_USER_DN_TEMPLATE = "cn=%(user)s,ou=xxx,dc=xxx,dc=xxx"
    44    AUTH_LDAP_BING_DN = 'cn=admin,dc=tfit,dc=com'
    55    AUTH_LDAP_BING_PASSWORD = '对应账号的口令'
    66    AUTH_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
    c3fe74f742ac hhyo/archery:1.8.0 0.0.0.0:9123->9123/tcp archery

    相关文章

      网友评论

          本文标题:Archery配置单点登录

          本文链接:https://www.haomeiwen.com/subject/xudaxjtx.html