You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#!/usr/bin/python
# -*- coding: utf-8 -*-
# $ pip install --user python-ldap
import ldap
import ldapurl
import logging
import getpass
logging.basicConfig(level=logging.INFO)
log = logging.getLogger(__file__)
def ldap_login(username, password, host, port=389, urlscheme='ldap'):
# SSL : ldaps://example.com:636/
# NOSSL : ldap://example.com:389/
status = False
try:
u = ldapurl.LDAPUrl(
urlscheme=urlscheme,
hostport='%s:%d' % (host, int(port))
)
l = ldap.initialize(u.unparse())
# perform a synchronous bind
l.set_option(ldap.OPT_REFERRALS, 0)
# you should set this to ldap.VERSION2 if you're using a v2 directory
l.protocol_version = ldap.VERSION3
# Pass in a valid username and password to get
# privileged directory access.
# If you leave them as empty strings or pass an invalid value
# you will still bind to the server but with limited privileges.
# Any errors will throw an ldap.LDAPError exception
# or related exception so you can ignore the result
l.simple_bind_s(username, password)
l.unbind()
# Return True if ldap allows anonymous binds.
status = True # If no exceptions, login status is succeful.
# except ldap.LDAPError as e:
except Exception as e:
log.exception(e)
# handle error however you like
if status:
log.info("%s:%d / %s:%s - Login ldap successfully" % (
host, int(port), username, password
))
else:
log.info("%s:%d / %s:%s - Login ldap failed" % (
host, int(port), username, password
))
return status
if __name__ == '__main__':
username = input('Username: ')
password = getpass.getpass()
ldaphost = "8.8.8.8" # Ldap Server IP
ldap_login(username, password, ldaphost)
## References
# https://www.python-ldap.org/en/latest/
# http://www.grotan.com/ldap/python-ldap-samples.html
The text was updated successfully, but these errors were encountered:
The text was updated successfully, but these errors were encountered: