用ldap作为django后端用户登录验证的实现


Posted in Python onDecember 07, 2020

每个公司在运维平台化过程中,如果以开始没有规划,免不了全面开花,会做成好多个平台,然后每个平台都有自己的认证体系,等平台多了,记录这些账号就变得非常烦人,如果用不同的密码,对人的记忆力是个挑战,所以基于此,大部分公司会有部署Ldap系统,来统一运维系统的账号管理,像我们常用的jenkins也可以做对接到ldap上,这样所有的系统就可以统一用ldap来认证,然后根据不同的人来设置不同的权限,那django怎么使用ldap来做后端验证呢,操作接入非常简单,整个过程可以几乎不改我们之前的代码任何逻辑。

我们先进行第一步,安装依赖,ldap和django-auth-ldap,django-auth-ldap这个安装没有任何问题, 我们不多说了,直接pip即可,但ldap这玩意儿在Linux系统上安装没啥问题,但如果你是windows系统,安装准报错,而且报的错能让你崩溃,你要是顺着报错的信息去搜去解决问题,会浪费大量的时间,但你又不能不安装,不然你本地怎么调试?(mac的忽略),不能每次改完代码提交到服务器上验证吧?不过大家别担心,我已把路给大家趟平了,按以下步骤去安装就绝对没问题,首先访问:

https://www.lfd.uci.edu/~gohlke/pythonlibs/#python-ldap

然后根据自己的版本需求下载对应的文件,以下是我下载的:

用ldap作为django后端用户登录验证的实现

如果你用的虚拟环境,需要进入到你虚拟环境目录然后进行安装,进入windows虚拟环境下,执行: active.bat,进入虚拟环境:然后运行:

用ldap作为django后端用户登录验证的实现

等安装完,就能正常使用了,下面我们来编辑settings.py文件,加入内容:

首先导入需要的模块:

import ldap
from django_auth_ldap.config import LDAPSearch,GroupOfNamesType

指定后端验证为ldap:

AUTHENTICATION_BACKENDS = [
  'django_auth_ldap.backend.LDAPBackend',
  'django.contrib.auth.backends.ModelBackend',
]

然后设置ldap的ip地址连接配置:

# 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"
}

完毕运行工程,这时候登录就是Ldap方式了,相对还是比较简单

到此这篇关于用ldap作为django后端用户登录验证的实现的文章就介绍到这了,更多相关django 登录验证内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中的Numeric包和Numarray包使用教程
Apr 13 Python
Python中的fileinput模块的简单实用示例
Jul 09 Python
详解python中字典的循环遍历的两种方式
Feb 07 Python
Python实现感知机(PLA)算法
Dec 20 Python
简单实现python聊天程序
Apr 01 Python
pandas 数据实现行间计算的方法
Jun 08 Python
django 中QuerySet特性功能详解
Jul 25 Python
Python学习笔记之Zip和Enumerate用法实例分析
Aug 14 Python
tensorflow中tf.slice和tf.gather切片函数的使用
Jan 19 Python
python中rb含义理解
Jun 18 Python
python 抓取知乎指定回答下视频的方法
Jul 09 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
Jan 12 Python
Django中使用Celery的方法步骤
Dec 07 #Python
python集合的新增元素方法整理
Dec 07 #Python
python进行二次方程式计算的实例讲解
Dec 06 #Python
paramiko使用tail实时获取服务器的日志输出详解
Dec 06 #Python
python中二分查找法的实现方法
Dec 06 #Python
python中判断数字是否为质数的实例讲解
Dec 06 #Python
Django搭建项目实战与避坑细节详解
Dec 06 #Python
You might like
js单向链表的具体实现实例
2013/06/21 Javascript
一个php+js实时显示时间问题
2015/10/12 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
如何防止INPUT按回车自动提交表单FORM
2016/12/06 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
2017/02/09 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
JS+WCF实现进度条实时监测数据加载量的方法详解
2017/12/19 Javascript
Vue Router history模式的配置方法及其原理
2019/05/30 Javascript
vue 实现路由跳转时更改页面title
2019/11/05 Javascript
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
Javascript实现html转pdf高清版(提高分辨率)
2020/02/19 Javascript
jQuery弹框插件使用方法详解
2020/05/26 jQuery
Python中字符串的常见操作技巧总结
2016/07/28 Python
Python 文件处理注意事项总结
2017/04/10 Python
使用python 3实现发送邮件功能
2018/06/15 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
详解Django将秒转换为xx天xx时xx分
2019/09/27 Python
python实现猜数字游戏
2020/03/25 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
python3检查字典传入函数键是否齐全的实例
2020/06/05 Python
Python 实现PS滤镜中的径向模糊特效
2020/12/03 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
2020/12/23 Python
CSS3之背景尺寸Background-size使用介绍
2013/10/14 HTML / CSS
HTML5 CSS3新的WEB标准和浏览器支持
2009/07/16 HTML / CSS
您的网上新华书店:文轩网
2016/08/24 全球购物
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
Lyle & Scott苏格兰金鹰官网:英国皇室御用品牌
2018/05/09 全球购物
如何写一份好的自荐信
2014/01/02 职场文书
促销活动计划书
2014/05/02 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
国际政治学专业推荐信
2014/09/26 职场文书
工作自我评价范文
2015/03/05 职场文书
一个都不能少观后感
2015/06/04 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书