44 lines
1.0 KiB
Python
44 lines
1.0 KiB
Python
|
"""LDAP authentication and authorization testing"""
|
||
|
import json
|
||
|
import logging
|
||
|
import lldap
|
||
|
from ldap3.core.exceptions import LDAPException
|
||
|
|
||
|
logging.basicConfig(level=logging.INFO)
|
||
|
|
||
|
|
||
|
def load_config(path: str) -> dict:
|
||
|
with open(path, "r", encoding="utf-8") as f:
|
||
|
return json.loads(f.read())
|
||
|
|
||
|
|
||
|
def main():
|
||
|
config = load_config("config.json")
|
||
|
ldap = lldap.LLDAP(
|
||
|
ldap_server=config['ldap_server'],
|
||
|
bind_dn=config['bind_dn'],
|
||
|
bind_password=config['bind_password'],
|
||
|
user_dn=config['user_dn'],
|
||
|
group_dn=config['group_dn']
|
||
|
)
|
||
|
|
||
|
# List all groups
|
||
|
try:
|
||
|
entries = ldap.list_groups()
|
||
|
for entry in entries:
|
||
|
print(entry)
|
||
|
except LDAPException:
|
||
|
logging.error("Failed to list groups due to LDAP error.")
|
||
|
|
||
|
# List all users
|
||
|
try:
|
||
|
entries = ldap.list_users()
|
||
|
for entry in entries:
|
||
|
print(entry)
|
||
|
except LDAPException:
|
||
|
logging.error("Failed to list users due to LDAP error")
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
main()
|