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("系统")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值