Importar LDIF de Active Directory a LDAP

Aldrin Martoq amartoq en dcc.uchile.cl
Lun Mar 29 01:14:29 CLST 2010


2010/3/28 Sebastian H. Antunez N. <santunez en gmail.com>:
> Estamos migrando el Active Directory a LDAP y exporte todas las OU y Users
> de Actiev Directory a un archivo LDIF
> Mi problema es que en Active Directory el formato de exportacion es el
> siguiente
> dn: CN= Identity Manager
> Account,OU=Users,OU=Compliance,OU=Accounts,DC=domain,DC=com
> changetype: add
> objectClass: top
> objectClass: person
> objectClass: organizationalPerson
> objectClass: user
> cn: Identity Manager Account
> givenName: SuperAdmin
> sAMAccountName: superadmin
> Buscando Documentacion, el formato que requiere el LDAP que instalamos es el
> siguiente:
> dn: uid=superadmin,OU=Users,OU=Compliance,OU=Accounts,DC=domain,DC=com
> oc: top
> oc: person
> oc: organizationalPerson
> oc: inetOrgPerson
> cn: Identity Manager Account
> givenName: SuperAdmin
> sn:
> Alguien conoce como poder exportar ya sea con un script o comando LDAP de AD
> a LDAP

Transformar esto es trivial con un script, un ejemplo:

cat windows.ldif | sed -e 's/^sAMAccountName/uid/' | sed -e
's/^objectClass/oc/' | sed -e 's/^oc: user/oc: inetOrgPerson/' >
openldap.ldif

y listo, hacerlo en VI es mas entretenido ademas de tener undo y
probar cada cosa:

$ cp window.ldif openldap.ldif && vim openldap.ldif
:%s#^sAMAccountName#uid#
:%s#^objectClass#oc#
:%s#^oc: user#oc: inetOrgPerson#


No es necesario que en DN tengas el uid, puedes perfectamente importar
algo como esto:

dn: cn=Identity Manager
Account,OU=Users,OU=Compliance,OU=Accounts,DC=domain,DC=com
oc: top
oc: person
oc: organizationalPerson
oc: inetOrgPerson
cn: Identity Manager Account
givenName: SuperAdmin
uid: superadmin

-- 
Aldrin Martoq
http://aldrin.martoq.cl/


Más información sobre la lista de distribución Linux