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#!/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!