一、需求概述

需要通过一个方法,传两个参数,用户名和属性名,获取指定用户的属性值

二、源码

from datetime import datetime
from itertools import chain
from ldap3 import Server, Connection, ALL, NTLM, SUBTREE

def get_attribute(username, attribute):
    if username is None or username == "":
        return None

    server = Server('ldap://example.com')  # 替换为你的域控制器的地址
    conn = Connection(server, user='your_user', password='your_password', auto_bind=True)

    conn.search(
        search_base='DC=example,DC=com',  # 根据你的AD配置修改
        search_filter=f'(sAMAccountName={username})',
        search_scope=SUBTREE,
        attributes=[f"{attribute}"],  # 仅查询需要的属性
    )

    result = conn.entries
    if len(result) > 0:
        info = result[0][f"{attribute}"].value
        return info
    else:
        return None
  
  
  
# 示例1 打印 sAMAccountName 属性
result1 = get_attribute("user1", "sAMAccountName")
print(result1) # user1

# 示例2 打印 physicalDeliveryOfficeName 属性
result2 = get_attribute("user2", "physicalDeliveryOfficeName")
print(result2) # ShangHai

# 示例3 打印 objectCategory
result3 = get_attribute("user3", "objectCategory")
print(result3) # CN=Person,CN=Schema,CN=Configuration,DC=example,DC=com
END
本文作者:
文章标题: 使用python ldap3 库获取指定用户的属性值
本文地址: https://blog.imwlw.com/archives/6/
版权说明:若无注明,本文皆 ITShare Studio 原创,转载请保留文章出处。
最后修改:2024 年 08 月 26 日
如果觉得我的文章对你有用,请随意赞赏