コード例 #1
0
def ldap_authenticate(ldap_conn: SimpleLDAPObject, user_dn: str, password: str):
    """Validates/binds the provided dn/password with the LDAP sever."""
    try:
        LOG.debug(f"LDAP bind TRY with username: '******'")
        ldap_conn.simple_bind_s(who=user_dn, cred=password)
        LOG.debug(f"LDAP bind SUCCESS with username: '******'")
        return True
    except ldap.INVALID_CREDENTIALS:
        return False
コード例 #2
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)
コード例 #3
0
ファイル: aciuserdntest.py プロジェクト: rsevilla87/scripts
print "create userb"
dn = "uid=userb,ou=people," + basedn
userbdn = dn
ent = Entry(dn)
ent.setValues('objectclass', ['inetOrgPerson', 'myAuxOc'])
ent.setValues('cn', 'User B')
ent.setValues('sn', 'B')
ent.setValues('givenName', 'User')
userbpw = 'userb'
ent.setValues('userPassword', userbpw)
ent.setValues('owner', useradn)
srv.add_s(ent)

print "create aci to allow usera to set password in userb"
aci = '(targetattr="userPassword")(version 3.0; acl "Owners can set passwords"; allow(write) userattr="owner#USERDN";)'
mod = [(ldap.MOD_REPLACE, 'aci', aci)]
srv.modify_s(basedn, mod)

print "bind as usera"
aconn = SimpleLDAPObject('ldap://%s:%d' % (host1, port1))
aconn.simple_bind_s(useradn, userapw)

print "user a will modify user b userPassword"
userbpw = 'anewpassword'
mod = [(ldap.MOD_REPLACE, 'userPassword', userbpw)]
aconn.modify_s(userbdn, mod)

print "userb will attempt to bind with new password"
bconn = SimpleLDAPObject('ldap://%s:%d' % (host1, port1))
bconn.simple_bind_s(userbdn, userbpw)
コード例 #4
0
ファイル: bug551198.py プロジェクト: axdxnco/scripts
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)
コード例 #5
0
ファイル: acctpolicy.py プロジェクト: taraksinha/scripts
       (ldap.MOD_REPLACE, 'limitattrname', 'accountInactivityLimit')]
srv.modify_s('cn=config,cn=Account Policy Plugin,cn=plugins,cn=config', mod)

print "restart server for changes to take effect"
srv.stop()
srv.start()

print "find scarter"
ents = srv.search_s(basedn, ldap.SCOPE_SUBTREE, 'uid=scarter', ['lastLoginTime', 'createTimestamp'])
userdn = ents[0].dn
pprint.pprint(ents[0])

print "bind as", userdn
conn = SimpleLDAPObject('ldap://%s:%d' % (host1, port1))
try:
    conn.simple_bind_s(userdn, 'sprain')
except ldap.CONSTRAINT_VIOLATION:
    print "user is prevented from logging in after", inactivetime, "seconds of inactivity"
    ents = srv.search_s(basedn, ldap.SCOPE_SUBTREE, 'uid=scarter', ['lastLoginTime', 'createTimestamp'])
    print "lastLoginTime:", ents[0].lastLoginTime

print "sleep for a while . . ."
time.sleep(inactivetime)
print "bind as", userdn, "again - see if there is any account policy"
conn = SimpleLDAPObject('ldap://%s:%d' % (host1, port1))
try:
    conn.simple_bind_s(userdn, 'sprain')
except ldap.CONSTRAINT_VIOLATION:
    print "user is prevented from logging in after", inactivetime, "seconds of inactivity"
    ents = srv.search_s(basedn, ldap.SCOPE_SUBTREE, 'uid=scarter', ['lastLoginTime', 'createTimestamp'])
    print "lastLoginTime:", ents[0].lastLoginTime