Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/01/2016, 07:45
safernandez666
 
Fecha de Ingreso: julio-2013
Mensajes: 19
Antigüedad: 10 años, 10 meses
Puntos: 2
Conexion a Active Directory - Query LDAP

Estimados,

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
  1. #!/usr/bin/env python
  2.  
  3. import ldap
  4. import ldap.modlist as modlist
  5. import sys
  6.  
  7. # Habilitacion de Usuario
  8. # Comienzo de Funcion
  9. def habilitarUsuarioAD(user_dn):
  10.     ATTR = "userAccountControl"
  11.     ATT_VALUE = "514"
  12.     userAccountControl = [(ldap.MOD_REPLACE, ATTR, [ATT_VALUE])]
  13.     try:
  14.         l.modify_s(user_dn, userAccountControl)
  15.         print "Cuenta Habilitada"
  16.     except ldap.LDAPError, e:
  17.         sys.stderr.write('Error mientras Intentaba Habilitar \n')
  18.         sys.stderr.write('Message: ' + str(e) + '\n')
  19. # Fin de Funcion
  20.  
  21.  
  22. # Variables de Administrador de Dominio
  23. admin_pwd = 'XXXXX'
  24.  
  25. LDAP_ADDR = 'ldap://172.17.240.70'
  26. LDAP_BASE = 'DC=XXXX,DC=local'
  27. LDAP_BIND_ADMIN = 'CN=Administrator,CN=Users,DC=XXXX,DC=local'
  28.  
  29.  
  30. # Apertura Conexion Active Directory
  31. print "Conectadno a Active Directory .."
  32. try:
  33.     ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)
  34.     l = ldap.initialize(LDAP_ADDR)
  35. except ldap.LDAPError, e:
  36.     print e
  37.     sys.exit(1)
  38.  
  39. # Set de Version, de LDAP
  40. l.protocol_version = ldap.VERSION3
  41.  
  42. # Bind to AD
  43. print "Ingresando Credenciales de Administrador .."
  44. try:
  45.     l.bind_s(LDAP_BIND_ADMIN, admin_pwd)
  46. except ldap.LDAPError, e:
  47.     print e
  48.     sys.exit(1)
  49. else:
  50.     print 'Conexion exitosa a Active Directory'
  51.    
  52. # Usuario a Habilitar
  53. nombre = raw_input("Ingrese la Busqueda: ")
  54. user_dn = 'CN=%s,OU=Usuarios,DC=ironbox,DC=local' % nombre
  55.  
  56. habilitarUsuarioAD(user_dn)
  57.  
  58. # Cierro Conexion
  59. 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!