Python使用ldap3认证
一、安装ldap3模块(python版本为python3以上,Django=1.11.8)
pip install ldap3
二、相关代码
from ldap3 import Server, Connection, ALL, SUBTREE, ServerPool,ALL_ATTRIBUTES LDAP_SERVER_POOL = ["AD_IP1", "AD_IP2"]
LDAP_SERVER_PORT = 389
ADMIN_DN = "administrator@domainname.com"
ADMIN_PASSWORD = "xxxxxxx"
SEARCH_BASE = "ou=Users,dc=domainname,dc=com" def ldap_auth(username, password):
ldap_server_pool = ServerPool(LDAP_SERVER_POOL)
conn = Connection(ldap_server_pool, user=ADMIN_DN, password=ADMIN_PASSWORD, check_names=True, lazy=False, raise_exceptions=False)
conn.open()
conn.bind() res = conn.search(
search_base = SEARCH_BASE,
search_filter = '(sAMAccountName={})'.format(username),
search_scope = SUBTREE,
attributes = ['cn', 'givenName', 'mail', 'sAMAccountName','department','manager'],
#ALL_ATTRIBUTES:获取所有属性值
# attributes=ALL_ATTRIBUTES,
paged_size = 5
) if res:
entry = conn.response[0]
# print(entry)
dn = entry['dn']
attr_dict = entry['attributes'] # check password by dn
try:
conn2 = Connection(ldap_server_pool, user=dn, password=password, check_names=True, lazy=False, raise_exceptions=False)
conn2.bind()
if conn2.result["description"] == "success":
print((True,attr_dict["sAMAccountName"],password, attr_dict["mail"], attr_dict["cn"],attr_dict["department"], attr_dict["givenName"]))
return (True, attr_dict["sAMAccountName"],password, attr_dict["mail"],attr_dict["cn"],attr_dict["department"],attr_dict["givenName"])
else:
print("auth fail")
return (False, None, None, None)
except Exception as e:
print("auth fail")
return (False, None, None, None)
else:
return (False, None, None, None) if __name__ == "__main__":
ldap_auth("administrator", "xxxxxxxx")
官方文档链接:
https://ldap3.readthedocs.io/index.html
Python使用ldap3认证的更多相关文章
- python使用ldap3进行接口调用
把自己使用到的ldap调用的代码分享出来,希望大家可以参考 #!/usr/bin/python # -*- coding: utf-8 -*- """ @Time : 2 ...
- 用Python建设企业认证和权限控制平台
目前大家对Python的了解更多来源是数据分析.AI.运维工具开发,在行业中使用Python进行web开发,同样也是非常受欢迎的,例如:FaceBook,豆瓣,知乎,饿了么等等,本文主要是介绍是利用P ...
- python urllib2 Basic认证
1.通过添加http header 来实现 import urllib2 from base64 import encodestring url = 'http://202.108.1.51' use ...
- python之滑动认证(图片)
from PIL import Image, ImageEnhance from io import BytesIO def cutImg(imgsrc): """ 根据 ...
- python api接口认证脚本
import requests import sys def acces_api_with_cookie(url_login, USERNAME, PASSWORD, url_access): ...
- Python—实现ssl认证
https://blog.csdn.net/vip97yigang/article/details/84721027 https://www.cnblogs.com/lsdb/p/9397530.ht ...
- python 购物车+用户认证程序
创建文件a.txt,b.txt.c.txt用于存放应该持续保存的信息 a.txt :用户密码输入错误3次就锁定 b.txt :购物时的活动,每个用户只能参与一次 c:txt :购物完后的发票在这里查看 ...
- 使用python发送简单的邮件
from:http://blog.csdn.net/zhaoweikid/article/details/125898 前些时间,论坛上有人讨论怎么用python发送需要认证的邮件,我在我的FreeB ...
- IBM Python 技术专题
Python 技术专题 Python 是由 Guido van Rossum 开发的,可免费获得的.是一种非常高级的解释型语言.其语法简单易懂,而且面向对象的语义功能强大又灵活,Python 可以广泛 ...
随机推荐
- ZOJ 4063 - Tournament - [递归][2018 ACM-ICPC Asia Qingdao Regional Problem F]
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4063 Input Output Sample Input 2 3 ...
- Web开发——HTML基础(HTML表格 <table>)
参考: 表格属性参考:http://www.w3school.com.cn/tags/tag_table.asp 目录: 1.举例 2.表格 2.1 表格属性 2.2 表格的表头 2.3 表格中的空单 ...
- U盘出现很多.exe的文件处理方案
1.原来优盘显示隐藏系统文件后,会有MyDocument文件夹和MyDocument.exe文件两个. 2.在MyDocument文件夹下新建文件夹名为“安全区”的空文件夹. 3.在U盘的根目录下新建 ...
- 【Java】NO.80.Note.1.Java.1.001-【Java 各种特性概念】
1.0.0 Summary Tittle:[Java]NO.80.Note.1.Java.1.001-[Java 各种特性概念] Style:Java Series:Java Since:2018-0 ...
- UVA 11582 Colossal Fibonacci Numbers(数学)
Colossal Fibonacci Numbers 想先说下最近的状态吧,已经考完试了,这个暑假也应该是最后刷题的暑假了,打完今年acm就应该会退了,但是还什么都不会呢? +_+ 所以这个暑假,一定 ...
- 转载一篇较为详细的caffe-ssd编译环境的搭建
这篇搭建的文章写得还是比较全面的,亲测有效:https://blog.csdn.net/lukaslong/article/details/81390276
- ASP.NET MVC案例教程(三)
ASP.NET MVC案例教程(二) 让第一个页面跑起来 现在,我们来实现公告系统中的第一个页面——首页.它非常简单,只包括所有公告分类的列表,并且每个列表项是一个超链接.其中分类数据是用我们的Moc ...
- Sitecore Aliases
Sitecore别名 出于各种原因,有时您希望页面URL简短且易于记忆.例如,如果您在网站上运行任何广告系列或某些广告,则需要轻松记住该网址.在Sitecore中,有一种方法可以为名为Sitecore ...
- Divide the Sequence (贪心)
题意:求将一串数据尽可能多分成所有前缀和大于0的连续子串. 思路:由于是要求所有前缀和大于0,那么只要从后往前推就好了. #include<bits/stdc++.h> using nam ...
- 字典 hash
字典是按照hash存的,他会映射一个hash表,所以查找的时候根据一些算法会很快: 参考: https://harveyqing.gitbooks.io/python-read-and-write/c ...