1. 接口

ldap: LDAP库接口

ldap.asyncsearch: 大量搜索结果数据采用流处理

ldap.controls: LDAPv3上层访问扩展控制

ldap.dn: LDAP distinguished 名称处理

ldap.extop: LDAPv3上层访问扩展操作

ldap.filter: LDAP过滤器处理

ldap.modlist: 生成修改列表

ldap.resiter: 大量搜索结果数据采用流处理生成器

ldap.schema: LDAPv3 schema处理

ldap.syncrepl: syncrepl消费者实现

ldap.sasl: SASL认证方法

ldif: LDIF 解析器和生成器

ldapurl: LDAP URL 处理

sldaptest: OpenLDAP的sldap服务器的批量测试实例

2. django-auth-ldap配置

settings.py文件中的配置:

import ldap
from django_auth_ldap.config import LDAPSearch AUTHENTICATION_BACKENDS = [ 'django_auth_ldap.backend.LDAPBackend', 'django.contrib.auth.backends.ModelBackend' ] AUTH_LDAP_SERVER_URI = 'ldap://<ip>:389'
AUTH_LDAP_BIND_DN = "cn=<ldapuser>,OU=...,OU=...,DC=company,DC=com"
AUTH_LDAP_BIND_PASSWORD = "<ldappassword>"
AUTH_LDAP_USER_SEARCH = LDAPSearch(
'OU=xxx,OU=XXX,DC=company,DC=com',
ldap.SCOPE_SUBTREE,
'(&(objectclass=Person)(sAMAccountName=%(user)s))'
) AUTH_LDAP_USER_ATTR_MAP = {
'email': 'mailNickname',
'first_name': 'department',
'last_name': 'cn'
}

3. 视图

视图中的代码非常的简单,主要就是调用 authenticate 和 login 方法,代码示例如下:

from django.contrib.auth import authenticate, login, logout

def login_view(request):
username = request.POST.get('username')
password = request.POST.get('password') user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
else:
print("login fail") def logout_view(request):
logout(request)

4. 模板

在模板HTML中,则可以通过使用 request.user.is_authenticated 来判断用户是否登录,而通过 request.user.* 来获取存放在里面的用户相关信息。

[TimLinux] python-ldap 介绍的更多相关文章

  1. 【转】Python Twisted介绍

    Python Twisted介绍 作者:Jessica McKellar 原文链接 Twisted是用Python实现的基于事件驱动的网络引擎框架.Twisted诞生于2000年初,在当时的网络游戏开 ...

  2. 从零开始学Python第0周:Python基本介绍(部分内容来源于网络)

    Python入门介绍 一,Python的基本介绍 (1)概要 Python是一种解释型,面向对象,动态数据类型的高级程序设计语言.常被广泛用于处理系统管理任务和web编程.现如今Python已经成为了 ...

  3. LDAP介绍

    摘自: http://www.blogjava.net/allen-zhe/archive/2007/03/19/104740.html LDAP介绍 原文:http://ldapman.org/ar ...

  4. 【美妙的Python之中的一个】Python简单介绍及环境搭建

    美妙的Python之Python简单介绍及安装         简而言之: Python 是能你无限惊喜的语言,与众不同.             1.Python:                  ...

  5. python模块介绍- multi-mechanize 性能测试工具

    python模块介绍- multi-mechanize 性能测试工具 2013-09-13 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 3739 ...

  6. python模块介绍- xlwt 创建xls文件(excel)

    python模块介绍- xlwt 创建xls文件(excel) 2013-06-24磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 37391319 ...

  7. python模块介绍- binascii 二进制和ASCII转换

    python模块介绍-binascii二进制和ASCII转换 目录 项目简介 简介: Uu编码 Binhex编码 Base64编码 QP码 CRC校验和 二进制转换 其他实例 项目简介 Python中 ...

  8. python模块介绍- HTMLParser 简单的HTML和XHTML解析器

    python模块介绍- HTMLParser 简单的HTML和XHTML解析器 2013-09-11 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq ...

  9. 利用Python进行数据分析——重要的Python库介绍

    利用Python进行数据分析--重要的Python库介绍 一.NumPy 用于数组执行元素级计算及直接对数组执行数学运算 线性代数运算.傅里叶运算.随机数的生成 用于C/C++等代码的集成 二.pan ...

  10. Python lambda介绍

    转自:http://www.cnblogs.com/evening/archive/2010/03/29/2423554.html Python lambda 介绍   在学习python的过程中,l ...

随机推荐

  1. MySQL数据库的主从同步

    什么要进行数据库的主从同步? 防止单点故障造成的数据丢失 主从复制的原理 MySQL从数据库开启I/O线程,向主服务器发送请求数据同步(获取二进制日志) MySQL数据库开启I/O线程回应从数据库 从 ...

  2. 四 linuk常用命令 1. 文件处理命令

    一. 命令格式与目录处理命令ls 命令格式 命令格式:命令 [-选项] [参数] 例:ls -la /etc 说明: 1.个别命令使用不遵循此格式 2. 当有多个选项时,可以写在一起 3.简化选项与完 ...

  3. epoll介绍及使用

    小程序功能:简单的父子进程之间的通讯,子进程负责每隔1s不断发送"message"给父进程,不需要跑多个应用实例,不需要用户输入. 首先上代码 #include<assert ...

  4. vue引用组件的两个方法

    <template> <div> <myComponent></myComponent> </div> </template> ...

  5. 18个awk的经典实战案例

    介绍 这些案例是我收集起来的,大多都是我自己遇到过的,有些比较经典,有些比较具有代表性. 这些awk案例我也录了相关视频的讲解awk 18个经典实战案例精讲,欢迎大家去瞅瞅. 插入几个新字段 在&qu ...

  6. 20191017-7 alpha week 2/2 Scrum立会报告+燃尽图 06

    此作业要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/9803 一.小组情况 队名:扛把子 组长:迟俊文 组员:宋晓丽 梁梦瑶 韩昊 ...

  7. Nginx+SpringBoot实现负载均衡

    前言 在上一篇中介绍了Nginx的安装,本篇文章主要介绍的是Nginx如何实现负载均衡. 负载均衡介绍 介绍 在介绍Nginx的负载均衡实现之前,先简单的说下负载均衡的分类,主要分为硬件负载均衡和软件 ...

  8. 初探SpringMVC,走进SpringMVC的世界

    1.Springmvc入门 1.1.Springmvc是什么 SpringMVC是Spring中的一个组件,目前(2019)在互联网公司用的很多,是必需学习的一门框架技术!SpringMVC用于web ...

  9. 2019/12/1 智能硬件实验室(ROS方向)

    浅谈安装ubuntu与ros感想 ubuntu 以前看电脑软件安装管家上的教程尝试在另一台电脑上安装ubuntu(虚拟机上),但是后面遇到了无法解决的问题,放弃了.这次因为选的ros方向,所以昨天在学 ...

  10. Git同步本地项目文件到github

    1.登录自己的github账号,并创建一个存放项目代码的仓库 输入仓库名称后,点击create,然后来到完成后的页面,copy下以下内容,后面会用到 2.打开本地的git 安装好git后,打开git的 ...