专栏首页BigYoung小站Ldap3 库使用方法(二)

Ldap3 库使用方法(二)

前一篇文章我们讲解了Ldap3库的连接AD服务器的方法

今天给大家讲解如何使用Ldap3 库如何获取AD中用户和部门(OU)

#!/usr/bin/env python
# -*- coding: utf-8 -*-import json
from ldap3 import ALL_ATTRIBUTES
# 注意:ldap3库如果要使用tls(安全连接),需要ad服务先安装并配置好证书服务,才能通过tls连接,否则连接测试时会报LDAPSocketOpenError('unable to open socket'
# 如果是进行账号密码修改及账户激活时,会报错:“WILL_NOT_PERFORM”
from ldap3 import Connection, NTLM, Server
from ldap3 import MODIFY_REPLACEserver1 = Server("adtest.com", port=636, use_ssl=True, get_info=ALL, connect_timeout=5)
LDAP_SERVER_POOL = [server1]
SERVER_USER = 'adtest\\administrator'
SERVER_PASSWORD = "XXXXXXX"class AD(object):
   '''    AD用户操作    '''
   def __init__(self):
       '''初始化'''
       self.conn = Connection( #配置服务器连接参数
           server=LDAP_SERVER_POOL,
           auto_bind=True,
           authentication=NTLM,  #连接Windows AD需要配置此项
           read_only=False,  #禁止修改数据:True
           user=SERVER_USER,#管理员账户
           password=SERVER_PASSWORD,
       )       self.leaved_base_dn = 'ou=Leaved,dc=adtest,dc=intra'#离职账户所在OU
       self.active_base_dn = 'ou=测试部门,dc=adtest,dc=intra'#正式员工账户所在OU
       self.search_filter = '(objectclass=user)'#只获取【用户】对象
       self.ou_search_filter = '(objectclass=organizationalUnit)'#只获取【OU】对象   def users_get(self):
       '''获取所有的用户'''
       self.conn.search(search_base=self.active_base_dn,search_filter=self.search_filter,attributes=ALL_ATTRIBUTES)
       res = self.conn.response_to_json()
       res = json.loads(res)['entries']
       return res   def OU_get(self):
       '''获取所有的OU'''
       self.conn.search(search_base=self.active_base_dn,search_filter=self.ou_search_filter,attributes=ALL_ATTRIBUTES)
       res = self.conn.response_to_json()
       res = json.loads(res)['entries']
       return res

以上是Ldap3库对AD的User和OU的获取的方法实现。具体的文档,可以参考官网文档:Ldap3 文档以上人员的获取方法,大家主要查看【LDAP Operations】章节的内容。

本文分享自微信公众号 - BigYoung小站(bigyoungs),作者:Young文人

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Ldap3 库使用方法(五)

    今天给大家讲解如何使用Ldap3 库删除AD中用户和部门(OU),以及封装一个账户密码认证方法

    BigYoung小站
  • 最好用的ocr识别工具,没有之一!

    小编从来都是雨露均沾,让mac系统的小伙伴酸了那么久,今天必须安排一个神器——OCR文字识别工具。

    BigYoung小站
  • Ldap3 库使用方法(三)

    以上是Ldap3库对AD的User和OU新增的方法。具体的文档,可以参考官网文档:Ldap3 文档

    BigYoung小站
  • Day11面向对象高级编程2/3

    多重继承 class Animal(object): pass class Mammal(Animal): pass class Bird(...

    林清猫耳
  • 【Python】python获取线程的返回值的方法

    py3study
  • Python 3.5 HTTP服务器端重

    py3study
  • Pyspider框架 —— Python爬虫实战之爬取 V2EX 网站帖子

    这篇文章本是我暑假时写的,可是自己懒啊,最近自己又在捣鼓 python 了,然后蹭有机会然后就把这篇文章写下来了,后期应该还有爬取知乎爬虫文章,期待吧,写原创文...

    zhisheng
  • iOS开发:简单的Toast提示框实现

    今天是开工第一天,分享一篇2019年度第一篇博客,第一篇博文就分享一下关于iOS的内容吧。iOS开发过程中,有些时候操作App的时候,需要给用户对应的响应提示操...

    三掌柜
  • 强化学习系列案例 | 训练智能体玩Flappy Bird游戏

    Flappy Bird是一款简单操作的手机游戏,在游戏中有一只飞翔的小鸟,在飞行中会遇到管道障碍物,玩家需要操控小鸟往上飞,飞行过程中不能坠地也不能触碰障碍物,...

    数据酷客
  • 微信小程序-云开发 数据库http接口封装

    最近学习一下微信小程序的云开发,作为serverless架构,着实省去很多麻烦,省的搞https证书了,也不用写api,但是总是要建后台系统的,云开发的数据库是...

    纷扰D梦

扫码关注云+社区

领取腾讯云代金券