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
Example #3
0
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)
Example #4
0
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)
Example #5
0
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)
Example #6
0
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)