as part of django project I wanted to work out OD auth from python - and figured I'd share this quick sample code.
import sys
import os
import ldap
import getpass
DN = 'uid=%s,cn=users,dc=server,dc=example,dc=com'
def main():
con = ldap.initialize(AUTH_LDAP_SERVER)
con.set_option(ldap.OPT_X_TLS_DEMAND, True)
con.set_option(ldap.OPT_PROTOCOL_VERSION,3)
con.set_option(ldap.OPT_DEREF,3)
user_name = raw_input('Username: ')
pw = getpass.getpass("Password for %s: " % user_name)
try:
con.simple_bind_s (DN % user_name,pw)
print "authentication success"
print "Your dn is: \n",con.whoami_s()
except ldap.LDAPError, e:
sys.stderr.write("Fatal Error\n")
if type(e.message) == dict:
for (k, v) in e.message.iteritems():
sys.stderr.write("%s: %s\n" % (k, v))
else:
sys.stderr.write("Error: %s\n" % e.message);
sys.exit()
if __name__ == '__main__':
main()