栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 读取ldap数据

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 读取ldap数据

使用ldap3 读取ldap的数据

# coding=utf-8
import json
from loguru import logger
from ldap3 import Server, Connection, SUBTREE, ALL


def ldap_nub(branch):
    """
    读取ldap的数据,将在职(status为1)的数据写入数据库
    """
    ldap_host = "app.test.com"  # ldap服务器地址
    ldap_port = 389  # 默认389
    # ldap_user = ""  # ldap用户名
    # ldap_pass = ""  # ldap密码
    ldap_base_search = "OU={Branch},OU=公司,DC=test,DC=com".format(Branch=branch)  # 查询域

    server = Server(host=ldap_host, port=ldap_port, use_ssl=False, get_info='ALL')
    # 这个首先看看你的admin能不能正常connect
    conn = Connection(server, user="haha@test.com", password="123456", auto_bind=True)
    # print(conn)
    conn.bind()
    # conn.search(search_base=ldap_base_search,search_filter='(objectclass=person)', attributes="ALL_ATTRIBUTES")
    # conn.search(ldap_base_search, "(sAMAccountName=strong)", attributes=['*'])  # 搜索单个用户所有信息
    # conn.search(ldap_base_search, "(sAMAccountName=strong)",
    # attributes=['distinguishedName'])  # 搜索单个用户的OU信息
    conn.search(ldap_base_search, '(objectclass=person)', attributes=['*'])  # 搜索OU下面的所有用户
    # conn.search(ldap_base_search,'(objectclass=person)', attributes=['status'])

    return conn
    # for i in range(0, len(conn.entries)):
    #     res_dict = json.loads(conn.entries[i].entry_to_json())
    #     try:
    #         if res_dict["attributes"]["status"][0] == "1":
    #             Name = res_dict["attributes"]["displayName"][0]
    #             Job = res_dict["attributes"]["cn"][0]
    #
    #             s = res_dict["attributes"]["distinguishedName"][0].split(",")[1:-3]
    #             Branch = ",".join(s)
    #             Mail = res_dict["attributes"]["mail"][0]
    #             # logger.info(Name)
    #             # logger.info(Mail)
    #             ldap_mysql.mysql_conn(Sheet, Name, Job, Branch, Mail)
    #     # print(len(conn.entries))
    #     except Exception as f:
    #         logger.error(f)

    # print(len(conn.entries))

    # print(conn.extend.standard.who_am_i())

    # a = json.loads(conn.entries[0].entry_to_json())
    # x = a["attributes"]["department"][0]
    # m = a["attributes"]["mail"][0]
    # z = a["attributes"]["cn"][0]
    # n = a["attributes"]["displayName"][0]
    # zz = a["attributes"]["jobLevelDescription"][0]
    # print({"系统": x, "邮箱": m, "工号": z, "名字": n},zz)


# if __name__ == "__main__":
    # ldap_nub("系统")

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/326981.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号