我们先进行第一步,安装依赖,ldap和django-auth-ldap,django-auth-ldap这个安装没有任何问题, 我们不多说了,直接pip即可,但ldap这玩意儿在Linux系统上安装没啥问题,但如果你是windows系统,安装准报错,而且报的错能让你崩溃,你要是顺着报错的信息去搜去解决问题,会浪费大量的时间,但你又不能不安装,不然你本地怎么调试?(mac的忽略),不能每次改完代码提交到服务器上验证吧?不过大家别担心,我已把路给大家趟平了,按以下步骤去安装就绝对没问题,首先访问:
https://www.lfd.uci.edu/~gohlke/pythonlibs/#python-ldap然后根据自己的版本需求下载对应的文件,以下是我下载的:
如果你用的虚拟环境,需要进入到你虚拟环境目录然后进行安装,进入windows虚拟环境下,执行: active.bat,进入虚拟环境:然后运行:
等安装完,就能正常使用了,下面我们来编辑settings.py文件,加入内容:
首先导入需要的模块:
import ldapfrom django_auth_ldap.config import LDAPSearch,GroupOfNamesType指定后端验证为ldap:
AUTHENTICATION_BACKENDS = [ 'django_auth_ldap.backend.LDAPBackend', 'django.contrib.auth.backends.ModelBackend',]然后设置ldap的ip地址连接配置:
完毕重新启动工程,这时候登录就是Ldap方式了,整个过程没有改动views里的逻辑,相对还是比较简单,如果大家在过程中有问题,欢迎留言。# LDAP Setting
AUTH_LDAP_SERVER_URI = "ldap://10.1.1.1:389"
AUTH_LDAP_BIND_DN = "cn=admin,dc=xxx,dc=xxx,dc=xx"
AUTH_LDAP_BIND_PASSWORD = "mypassword"
AUTH_LDAP_USER_SEARCH = LDAPSearch(
'ou=users,dc=xxx,dc=xxx,dc=xx',
ldap.SCOPE_SUBTREE,
'(uid=%(user)s)',
)
# 跟django中的auth_user对应
AUTH_LDAP_USER_ATTR_MAP = {
"first_name": "uid",
"last_name": "sn",
"email": "mail"
}