def __is_account_present(ldap_conn: SimpleLDAPObject, account_name: str): """Checks if account is present in ldap db.""" try: ldap_conn.search_s(f"o={account_name},ou=accounts,dc=s3,dc=seagate,dc=com", ldap.SCOPE_SUBTREE) except ldap.NO_SUCH_OBJECT: return False except Exception as e: sys.stderr.write(f'INFO: Failed to find ldap account: {account_name}, error: {str(e)}\n') raise e return True
def __get_accesskey(ldap_conn: SimpleLDAPObject, s3userid: str) -> str: """Get accesskey of the given userid.""" access_key = None from ldap import SCOPE_SUBTREE result_list = ldap_conn.search_s('ou=accesskeys,dc=s3,dc=seagate,dc=com', SCOPE_SUBTREE, filterstr='(ObjectClass=accessKey)') for (_, attr_dict) in result_list: if s3userid == attr_dict['s3UserId'][0].decode(): access_key = attr_dict['ak'][0].decode() break return access_key
def search_user_by_dn( ldap_conn: SimpleLDAPObject, user_dn: str = None, attrs: Optional[List[str]] = None, apply_filter: bool = False, ) -> Optional[Tuple[str, Dict]]: try: filter_str = _get_ldap_filter() if apply_filter else "(objectClass=*)" raw_search_result = ldap_conn.search_s( base=user_dn, scope=ldap.SCOPE_SUBTREE, filterstr=filter_str, attrlist=attrs, ) except ldap.NO_SUCH_OBJECT: return None return _sanitize_ldap_search_results(raw_search_result)
def search_user_by_uid( ldap_conn: SimpleLDAPObject, uid: str = None, attrs: Optional[List[str]] = None, apply_filter: bool = False, ) -> Optional[Tuple[str, Dict]]: search_filter = ( f"(&({QuerybookSettings.LDAP_UID_FIELD}={uid})" + (_get_ldap_filter() if apply_filter else "(objectClass=*)") + ")") try: raw_search_result = ldap_conn.search_s( base=QuerybookSettings.LDAP_SEARCH, scope=ldap.SCOPE_SUBTREE, filterstr=search_filter, attrlist=attrs, ) except ldap.NO_SUCH_OBJECT: return None return _sanitize_ldap_search_results(raw_search_result)
from dsadmin import DSAdmin, Entry from ldap.ldapobject import SimpleLDAPObject import pprint host1 = "localhost.localdomain" port1 = 1110 basedn = 'dc=example,dc=com' ldapifilepath = os.environ.get('PREFIX', "") + "/var/run/slapd-srv.socket" os.environ['USE_GDB'] = "1" srv = DSAdmin.createInstance({ 'newrootpw': 'password', 'newhost': host1, 'newport': port1, 'newinst': 'srv', 'newsuffix': basedn, 'no_admin': True, 'ldapifilepath': ldapifilepath }) del os.environ['USE_GDB'] ldapiurl = ldapurl.LDAPUrl(None, "ldapi", ldapifilepath) conn = SimpleLDAPObject(ldapiurl.initializeUrl()) print "connecting to", ldapiurl.initializeUrl() conn.simple_bind_s("cn=directory manager", "password") ents = conn.search_s("", ldap.SCOPE_BASE) pprint.pprint(ents)
import tempfile from ldap.ldapobject import SimpleLDAPObject import pprint host1 = "localhost.localdomain" port1 = 1110 basedn = 'dc=example,dc=com' ldapifilepath = os.environ.get('PREFIX', "") + "/var/run/slapd-srv.socket" os.environ['USE_GDB'] = "1" srv = DSAdmin.createInstance({ 'newrootpw': 'password', 'newhost': host1, 'newport': port1, 'newinst': 'srv', 'newsuffix': basedn, 'no_admin': True, 'ldapifilepath': ldapifilepath }) del os.environ['USE_GDB'] ldapiurl = ldapurl.LDAPUrl(None, "ldapi", ldapifilepath) conn = SimpleLDAPObject(ldapiurl.initializeUrl()) print "connecting to", ldapiurl.initializeUrl() conn.simple_bind_s("cn=directory manager", "password") ents = conn.search_s("", ldap.SCOPE_BASE) pprint.pprint(ents)