Sincronizando Bases OpenLDAP e Active Directory

O objetivo do artigo é a centralização da base de usuários, ou seja, por um fim a vários logins e senhas de uma rede com vários serviços autenticados. Abordarei um cenário que replica alterações na base OpenLDAP para o Active Directory.

[ Hits: 56.057 ]

Por: Evandro Nabor em 14/02/2013


Iniciando a sincronização



Para iniciar a sincronização, acesse /usr/local/lsc e execute o comando:

# bin/lsc -f etc/ -s all -c all

Se tudo ocorrer bem, a saída deverá ser igual a essa:


Feb 04 22:02:59 - INFO - Starting sync for user
Feb 04 22:02:59 - INFO - Connecting to LDAP server ldap://172.31.1.28/dc=texas,dc=local as cn=Manager,dc=texas,dc=local
Feb 04 22:03:00 - INFO - Connecting to LDAP server ldaps://172.31.1.99/DC=texas,DC=local as CN=LSC,CN=Users,DC=texas,DC=local
Feb 04 22:03:01 - INFO - # Adding new entry CN=lverde,CN=Users for user
dn: CN=lverde,CN=Users,DC=texas,DC=local
changetype: add
userPrincipalName: lverde@texas.local
pwdLastSet: -1
sAMAccountName: lverde
unicodePwd:: IgAzAHYANABuAGQAcgBPACIA
userAccountControl: 544
objectClass: organizationalPerson
objectClass: person
objectClass: user
objectClass: top
givenName: lverde
displayName: lverde

Feb 04 22:03:01 - INFO - # Adding new entry CN=bwayne,CN=Users for user
dn: CN=bwayne,CN=Users,DC=texas,DC=local
changetype: add
userPrincipalName: bwayne@texas.local
pwdLastSet: -1
sAMAccountName: bwayne
unicodePwd:: IgAzAHYANABuAGQAcgBPACIA
userAccountControl: 544
objectClass: organizationalPerson
objectClass: person
objectClass: user
objectClass: top
givenName: bwayne
displayName: bwayne

Feb 04 22:03:01 - INFO - # Adding new entry CN=lluthor,CN=Users for user
dn: CN=lluthor,CN=Users,DC=texas,DC=local
changetype: add
userPrincipalName: lluthor@texas.local
pwdLastSet: -1
sAMAccountName: lluthor
unicodePwd:: IgAzAHYANABuAGQAcgBPACIA
userAccountControl: 544
objectClass: organizationalPerson
objectClass: person
objectClass: user
objectClass: top
givenName: lluthor
displayName: lluthor

Feb 04 22:03:02 - INFO - # Adding new entry CN=sman,CN=Users for user
dn: CN=sman,CN=Users,DC=texas,DC=local
changetype: add
userPrincipalName: sman@texas.local
pwdLastSet: -1
sAMAccountName: sman
unicodePwd:: IgAzAHYANABuAGQAcgBPACIA
userAccountControl: 544
objectClass: organizationalPerson
objectClass: person
objectClass: user
objectClass: top
givenName: sman
displayName: sman

Feb 04 22:03:02 - INFO - # Adding new entry CN=enabor,CN=Users for user
dn: CN=enabor,CN=Users,DC=texas,DC=local
changetype: add
userPrincipalName: enabor@texas.local
pwdLastSet: -1
sAMAccountName: enabor
unicodePwd:: IgAzAHYANABuAGQAcgBPACIA
userAccountControl: 544
objectClass: organizationalPerson
objectClass: person
objectClass: user
objectClass: top
givenName: enabor
displayName: enabor

Feb 04 22:03:02 - INFO - All entries: 5, to modify entries: 5, modified entries: 5, errors: 0
Feb 04 22:03:02 - INFO - Starting clean for user
Feb 04 22:03:02 - INFO - All entries: 5, to modify entries: 0, modified entries: 0, errors: 0
Feb 04 22:03:02 - INFO - Starting sync for group
Feb 04 22:03:02 - INFO - # Adding new entry CN=it,CN=Users for group
dn: CN=it,CN=Users,DC=texas,DC=local
changetype: add
member: CN=bwayne,CN=Users,DC=texas,DC=local
member: CN=enabor,CN=Users,DC=texas,DC=local
member: CN=sman,CN=Users,DC=texas,DC=local
cn: it
sAMAccountName: it
objectClass: group
objectClass: top

Feb 04 22:03:02 - INFO - # Adding new entry CN=managers,CN=Users for group
dn: CN=managers,CN=Users,DC=texas,DC=local
changetype: add
member: CN=lverde,CN=Users,DC=texas,DC=local
member: CN=lluthor,CN=Users,DC=texas,DC=local
cn: managers
sAMAccountName: managers
objectClass: group
objectClass: top

Feb 04 22:03:02 - INFO - All entries: 2, to modify entries: 2, modified entries: 2, errors: 0
Feb 04 22:03:02 - INFO - Starting clean for group
Feb 04 22:03:02 - INFO - All entries: 2, to modify entries: 0, modified entries: 0, errors: 0

Consulte o Active Directory e verá que os usuários e grupos foram criados na base.

Caso a saída apresente erros, fique atento para as configurações no arquivo "lsc.properties" e com a questão do certificado, pois perceba que estou sempre utilizando LDAPS para acessar o AD.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação e configuração
   3. Iniciando a sincronização
   4. Senhas
Outros artigos deste autor

Bind consultando zonas em base LDAP

Leitura recomendada

Configurando Zabbix Server no Debian

Nagios enviando alertas via WhatsAPP

Tutorial de instalação e configuração do CACIC 3.1.15

Zabbix Server 2.0 no CentOS - Instalação e configuração

Emulador de Redes Mininet

  
Comentários
[1] Comentário enviado por jfernandes em 16/02/2013 - 18:01h

Amigo, parabéns pelo artigo.
Tenho uma questão pra todos ...
Tenho um cliente que tem sua base em LDAP, e por enquanto não quer migrar para o AD da Microsoft, porém, contudo, todavia, ele quer uma solução que vamos instalar ( Xen Desktop ) que precisa do Active Directory da Microsoft para autenticação de seus usuários, não sei se conhecem o Xen Desktop, mas é uma solução de virtualização de estação de trabalho, e necessita de um login no AD.
Pergunta..... com esse seu tutorial, poderei implementar essa solução no cliente ?
Fico no aguardo, e mais uma vez, parabéns pelo artigo.
Joel Fernandes

[2] Comentário enviado por evandronabor em 17/02/2013 - 09:59h

Com certeza voce poderá usa-lo para isso.
Voce pode subir um servidor AD e seguir o meu artigo que todas as suas contas do OpenLDAP serão replicadas para o AD.
Quando a base estiver replicada é so voce colocar o comando de sincronização no crontab para ser executada quando voce quiser para manter a integridade das bases.

A unica questao que é preciso atençao é com relação as senhas pois como eu havia dito não é possivel sincroniza-las.
De uma boa lida no artigo e porcure mais informações no site do LSC. é possivel sim implementa-lo do jeito que voce precisa sem problemas.

Att.

[3] Comentário enviado por fernandofrauches em 22/02/2013 - 09:41h

Parabéns pelo artigo....
Muito bom...
Estou com um problema aqui na empresa relacionado a seu artigo.
No seu artigo vc faz a sincronização nesse sentido OpenLDAP -> Active Directory, é possivel fazer a sincronização no sentido contrario? OpenLDAP <- Active Directory? Se sim, tem alguma dica de como?
Desde ja obrigado.

[4] Comentário enviado por evandronabor em 22/02/2013 - 09:48h

Sim é possivel fazer. Basicamente voce vai inverter o SRC e o DST, verifique no site do LSC tem muitos exemplos de como fazer lá.

[5] Comentário enviado por acunhasp em 26/02/2013 - 14:13h

bom tarde amigo, o meu retorna o seguinte erro:
Error opening the LDAP connection to the destination!
Fev 26 14:05:23 - ERROR - Error while synchronizing ID {uid=edsonb}: java.lang.RuntimeException: java.lang.RuntimeException: Error getting context DN from LDAP provider url
Será que pode me ajudar?

[6] Comentário enviado por lanzao em 10/09/2013 - 12:09h

tem como migrar do ad para o ldap?

[7] Comentário enviado por geowany em 12/03/2014 - 00:51h


[1] Comentário enviado por jfernandes em 16/02/2013 - 18:01h:

Amigo, parabéns pelo artigo.
Tenho uma questão pra todos ...
Tenho um cliente que tem sua base em LDAP, e por enquanto não quer migrar para o AD da Microsoft, porém, contudo, todavia, ele quer uma solução que vamos instalar ( Xen Desktop ) que precisa do Active Directory da Microsoft para autenticação de seus usuários, não sei se conhecem o Xen Desktop, mas é uma solução de virtualização de estação de trabalho, e necessita de um login no AD.
Pergunta..... com esse seu tutorial, poderei implementar essa solução no cliente ?
Fico no aguardo, e mais uma vez, parabéns pelo artigo.
Joel Fernandes


Acredito que instalar o AD não é a melhor solução. Já tentou colocar o samba.schema nesse ldap e adicionar os atributos na contas de usuário para que se tornem samba accounts? Assim fica compatível com os atributos necessários do AD.


Contribuir com comentário