#!/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( "