详解Django-auth-ldap 配置方法


Posted in Python onDecember 10, 2018

使用场景

公司内部使用Django作为后端服务框架的Web服务,当需要使用公司内部搭建的Ldap 或者 Windows 的AD服务器作为Web登录认证系统时,就需要这个Django-auth-ldap第三方插件

插件介绍

Django-auth-ldap是一个Django身份验证后端,可以针对LDAP服务进行身份验证。有许多丰富的配置选项可用于处理用户,组和权限,便于对页面和后台的控制 插件介绍地址:Django-auth-ldap

安装方法

注意:需先正确安装python3环境、pip3 和 Django环境

前提: 需要先安装python-ldap > = 3.0

第一步:安装Django-auth-ldap

pip install django-auth-ldap

第二步:在setting.py中配置django-auth-ldap 模块

要在Django项目中使用auth认证,请将django_auth_ldap.backend.LDAPBackend添加 到AUTHENTICATION_BACKENDS。不要向INSTALLED_APPS添加任何内容。 添加完效果如下:

AUTHENTICATION_BACKENDS = [

'django_auth_ldap.backend.LDAPBackend' ,

]

第三步:在django项目的settings.py中配置如下代码:

#Django-auth-ldap 配置部分
import ldap
from django_auth_ldap.config import LDAPSearch,GroupOfNamesType
 
#修改Django认证先走ldap,再走本地认证
AUTHENTICATION_BACKENDS = [
 'django_auth_ldap.backend.LDAPBackend',
 'django.contrib.auth.backends.ModelBackend',
]
 
#ldap的连接基础配置
AUTH_LDAP_SERVER_URI = "ldap://xxx.xxx.xxx.xxx:389" # ldap or ad 服务器地址
AUTH_LDAP_BIND_DN = "CN=administrator,CN=Users,DC=test,DC=com" # 管理员的dn路径
AUTH_LDAP_BIND_PASSWORD = 'testpassword' # 管理员密码
 
#允许认证用户的路径
AUTH_LDAP_USER_SEARCH = LDAPSearch("OU=test,DC=test,DC=intra",
     ldap.SCOPE_SUBTREE, "(sAMAccountName=%(user)s)")
 
#通过组进行权限控制
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=groups,ou=test,dc=test,dc=intra",
 ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)"
)
 
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
 
#is_staff:这个组里的成员可以登录;is_superuser:组成员是django admin的超级管理员;is_active:组成员可以登录django admin后台,但是无权限查看后台内容
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
 "is_staff": "cn=test_users,ou=groups,OU=test,DC=test,DC=com",
 "is_superuser": "cn=test_users,ou=groups,OU=tset,DC=test,DC=com",
}
#通过组进行权限控制end
 
#如果ldap服务器是Windows的AD,需要配置上如下选项
AUTH_LDAP_CONNECTION_OPTIONS = {
 ldap.OPT_DEBUG_LEVEL: 1,
 ldap.OPT_REFERRALS: 0,
}
 
#当ldap用户登录时,从ldap的用户属性对应写到django的user数据库,键为django的属性,值为ldap用户的属性
AUTH_LDAP_USER_ATTR_MAP = {
 "first_name": "givenName",
 "last_name": "sn",
 "email": "mail"
}
 
#如果为True,每次组成员都从ldap重新获取,保证组成员的实时性;反之会对组成员进行缓存,提升性能,但是降低实时性
# AUTH_LDAP_FIND_GROUP_PERMS = True

以上配置完毕后,登录服务器后台地址:http://serverurl:8080/admin 使用ldap or ad中指定的group里的用户进行登录认证。希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python mysqldb连接数据库
Mar 16 Python
Tornado Web服务器多进程启动的2个方法
Aug 04 Python
python中sleep函数用法实例分析
Apr 29 Python
Python lxml模块安装教程
Jun 02 Python
Python基于PycURL实现POST的方法
Jul 25 Python
Python给你的头像加上圣诞帽
Jan 04 Python
基于python 二维数组及画图的实例详解
Apr 03 Python
Python可变参数*args和**kwargs用法实例小结
Apr 27 Python
Python魔法方法功能与用法简介
Apr 04 Python
如何使用django的MTV开发模式返回一个网页
Jul 22 Python
Python学习之路安装pycharm的教程详解
Jun 17 Python
python matlab库简单用法讲解
Dec 31 Python
Python网页正文转换语音文件的操作方法
Dec 09 #Python
python 使用 requests 模块发送http请求 的方法
Dec 09 #Python
Python实现八皇后问题示例代码
Dec 09 #Python
python中的tcp示例详解
Dec 09 #Python
python数据处理 根据颜色对图片进行分类的方法
Dec 08 #Python
Python发送邮件测试报告操作实例详解
Dec 08 #Python
Python自动发送邮件的方法实例总结
Dec 08 #Python
You might like
PHP 简单日历实现代码
2009/10/28 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
thinkphp实现附件上传功能
2017/05/26 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
Jquery 表单取值赋值的一些基本操作
2009/10/11 Javascript
JS原型对象通俗"唱法"
2012/12/27 Javascript
js实现格式化金额,字符,时间的方法
2015/02/26 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
node.js实现快速截图
2016/08/27 Javascript
localStorage实现便签小程序
2016/11/28 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
JS实现简易日历效果
2021/01/25 Javascript
Python使用gRPC传输协议教程
2018/10/16 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
如何使用 Python 读取文件和照片的创建日期
2020/09/05 Python
详解用 python-docx 创建浮动图片
2021/01/24 Python
使用css3实现的windows8开机加载动画
2014/12/09 HTML / CSS
英国在线自行车商店:Evans Cycles
2016/09/26 全球购物
Nike台湾官方商店:Nike.com (TW)
2017/08/16 全球购物
香港彩色隐形眼镜在线商店:Stunninglens(全球免费送货)
2019/05/10 全球购物
将时尚融入珠宝:Adornmonde
2019/10/17 全球购物
数组越界问题
2015/10/21 面试题
品管员岗位职责
2013/11/10 职场文书
入团者的自我评价分享
2013/12/02 职场文书
领导证婚人证婚词
2014/01/13 职场文书
活动总结报告范文
2014/05/04 职场文书
2014年征兵标语
2014/06/20 职场文书
大学生暑期社会实践证明范本
2014/10/24 职场文书
2014年环卫工作总结
2014/11/22 职场文书
2014年建筑工作总结
2014/11/26 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
协议书格式模板
2016/03/24 职场文书