详解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 相关文章推荐
wxPython定时器wx.Timer简单应用实例
Jun 03 Python
Python实现Sqlite将字段当做索引进行查询的方法
Jul 21 Python
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
Nov 16 Python
Python之re操作方法(详解)
Jun 14 Python
Python实现按学生年龄排序的实际问题详解
Aug 29 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
Aug 31 Python
Python里字典的基本用法(包括嵌套字典)
Feb 27 Python
使用python+whoosh实现全文检索
Dec 09 Python
Python命名空间及作用域原理实例解析
Aug 12 Python
scrapy处理python爬虫调度详解
Nov 23 Python
一行代码python实现文件共享服务器
Apr 22 Python
Python爬虫基础初探selenium
May 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/30 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
使用laravel指定日志文件记录任意日志
2019/10/17 PHP
Ext JS Grid在IE6 下宽度的问题解决方法
2009/02/15 Javascript
一些常用的JS功能函数(2009-06-04更新)
2009/06/04 Javascript
一个基于jquery的图片切换效果
2010/07/06 Javascript
js中小数转换整数的方法
2014/01/26 Javascript
javascript下拉列表菜单的实现方法
2015/11/18 Javascript
BootStrap树状图显示功能
2016/11/24 Javascript
第一次记录Bootstrap table学习笔记(1)
2017/05/18 Javascript
深入剖析JavaScript instanceof 运算符
2019/06/14 Javascript
监控微信小程序中的慢HTTP请求过程详解
2019/07/05 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
2019/10/21 Javascript
vue中的双向数据绑定原理与常见操作技巧详解
2020/03/16 Javascript
python中函数传参详解
2016/07/03 Python
windows下安装Python和pip终极图文教程
2017/03/05 Python
对python使用http、https代理的实例讲解
2018/05/07 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
CSS实现的一闪而过的图片闪光效果
2014/04/23 HTML / CSS
HTML5新增的标签和属性归纳总结
2018/05/02 HTML / CSS
Reebok官方旗舰店:美国知名健身品牌锐步
2019/01/07 全球购物
Elemental Herbology官网:英国美容品牌
2019/04/27 全球购物
英国电子产品购物网站:Tech in the basket
2019/11/08 全球购物
opencv实现图像几何变换
2021/03/24 Python
英语专业学生的自我评价
2013/12/30 职场文书
中学生期末评语
2014/02/03 职场文书
总会计师岗位职责
2014/02/19 职场文书
《与朱元思书》的教学反思
2014/04/17 职场文书
无财产无子女离婚协议书范文
2014/09/14 职场文书
锅炉工岗位职责
2015/02/13 职场文书
美术教师求职信范文
2015/03/20 职场文书
朋友聚会开场白
2015/06/01 职场文书
《兰兰过桥》教学反思
2016/02/20 职场文书
《将心比心》教学反思
2016/02/23 职场文书
Win10开机修复磁盘错误怎么跳过?Win10关闭开机磁盘检查的方法
2022/09/23 数码科技