0

LDAP Search

by
Published Apr 14, 2024

Search an LDAP Server using a filter and return entries and their attributes

Script ldap Verified

The script

Submitted by simon594 Python3
Verified 786 days ago
1
import ldap3
2
import json
3
import ssl
4

5
ldap = dict
6

7
def connect(ldap) -> ldap3.Connection:
8
    if ldap.get("ssl_verify", None) == False:
9
        tls_config = ldap3.Tls(validate=ssl.CERT_REQUIRED) 
10
    else: 
11
        tls_config = ldap3.Tls(validate=ssl.CERT_NONE) 
12
    ldap_server = ldap3.Server(ldap['server'], get_info=ldap3.ALL, use_ssl=ldap['use_ssl'], tls=tls_config)
13
    return ldap3.Connection(ldap_server, ldap['bind_user'], ldap['bind_password'], auto_bind=True, client_strategy=ldap3.RESTARTABLE)
14

15

16
def main(ldap: ldap, search_base: str, search_filter: str = "(objectclass=user)", attributes:list=['distinguishedName']):
17
    ldap_conn = connect(ldap)
18
    ldap_conn.search(search_base, search_filter, attributes=attributes)
19
    return [json.loads(entry.entry_to_json()) for entry in ldap_conn.entries]