Estoy realizando un Script, para interactuar con Active Directory. Estoy trabado en una funcion. La misma, deberia buscar el usuario en el directorio y el retorno ser la direccion DN del objeto. Me podran ayudar? Ya me estoy mareando!
Dejo el codigo.
Código Python:
Ver original
#!/usr/bin/env python import ldap import ldap.modlist as modlist import sys # Habilitacion de Usuario # Comienzo de Funcion def habilitarUsuarioAD(user_dn): ATTR = "userAccountControl" ATT_VALUE = "514" userAccountControl = [(ldap.MOD_REPLACE, ATTR, [ATT_VALUE])] try: l.modify_s(user_dn, userAccountControl) print "Cuenta Habilitada" except ldap.LDAPError, e: sys.stderr.write('Error mientras Intentaba Habilitar \n') sys.stderr.write('Message: ' + str(e) + '\n') # Fin de Funcion # Variables de Administrador de Dominio admin_pwd = 'XXXXX' LDAP_ADDR = 'ldap://172.17.240.70' LDAP_BASE = 'DC=XXXX,DC=local' LDAP_BIND_ADMIN = 'CN=Administrator,CN=Users,DC=XXXX,DC=local' # Apertura Conexion Active Directory print "Conectadno a Active Directory .." try: ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER) l = ldap.initialize(LDAP_ADDR) except ldap.LDAPError, e: print e sys.exit(1) # Set de Version, de LDAP l.protocol_version = ldap.VERSION3 # Bind to AD print "Ingresando Credenciales de Administrador .." try: l.bind_s(LDAP_BIND_ADMIN, admin_pwd) except ldap.LDAPError, e: print e sys.exit(1) else: print 'Conexion exitosa a Active Directory' # Usuario a Habilitar nombre = raw_input("Ingrese la Busqueda: ") user_dn = 'CN=%s,OU=Usuarios,DC=ironbox,DC=local' % nombre habilitarUsuarioAD(user_dn) # Cierro Conexion l.unbind()
Como se puede ver, hago un pregunta. Donde se ingresa el nombre de usuario. La idea es que en una funcion, ponga los datos del usuario y me devuelva el Unique ID. Por lo que vi, el campo es "iud". Asi se llama el atributo en AD.
Espero, que puedan, evacuar mi duda!
Les agradezco, el tiempo de lectura!