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
网友评论