Archery配置单点登录

2024-05-20  本文已影响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

上一篇下一篇

猜你喜欢

热点阅读