diff --git a/roles/ldap/server/files/ldapspn.py b/roles/ldap/server/files/ldapspn.py new file mode 100755 index 0000000..1b5061f --- /dev/null +++ b/roles/ldap/server/files/ldapspn.py @@ -0,0 +1,135 @@ +#!/usr/bin/python3 + +import sys +import argparse +from time import time +from struct import pack + +import ldap3 + + +def ldap_connect(): + server = ldap3.Server("ldapi:///var/run/ldapi") + conn = ldap3.Connection( + server, + authentication=ldap3.SASL, + sasl_mechanism=ldap3.EXTERNAL, + sasl_credentials="", + client_strategy=ldap3.SYNC, + ) + conn.bind() + conn.search( + search_base="", + search_filter="(objectClass=*)", + search_scope=ldap3.BASE, + attributes=["namingContexts"], + ) + basedn = conn.response[0]["attributes"]["namingContexts"][0] + return (conn, basedn) + + +def get_last_modified(principal): + """ create krbExtraData value with KRB5_TL_MOD_PRINC type """ + data = pack( + "