terça-feira, 29 de junho de 2010

Consultas LDAP no AD

Bom dia!

Um pouco atrasado mas sempre pode ajudar alguém.
Quem vêm do mundo Linux e está familiarizado com o OpenLDAP ou semelhantes certamente fica triste quando precisa fazer uma consulta LDAP em um AD e não encontra um ldapsearch nas estações disponíveis ou mesmo no servidor.

Antes de continuar... As pessoas, assim como eu, que tiveram o privilégio de aprender mexer com servidores em Linux para só então mexer em Windows (se é que precisa aprender mexer... hehehe) jamais enfrentaram algum problema com ferramentas semelhantes no Windows. OpenLDAP e AD, por exemplo, são a mesma coisa apenas com alguns schemas modificados e uns atributos diferentes. Certa vez ouvi um MCSE falando que modificar schemas do AD era coisa de outro mundo, algo extremamente complexo. Mostrei para ele como que isso era algo rotineiro para quem trabalhava com OpenLDAP e sem nunca ver um schema do AD antes, consegui interpretá-lo normalmente. hehe Ele ficou bem desapontado.

Agora, para quem conhece OpenLDAP e tenta user AD tira de letra. O contrário, por convivência, digo com propriedade que é muito raro. hehe Em Linux, a menos que não queira, você aprende como tudo funciona. Esse negócio de segurança por obscuridade até pode ter alguns argumentos positivos, mas no fim não resolve em nada os problemas de segurança.


Chega de filosofar...
Minha necessidade foi extrair todos os usuários de um grupo do AD para um arquivo texto para então fazer um relatório. Se tem uma forma de fazer isso pelo AD eu não encontrei, mas nem pensei muito. Fui direto para a raíz do problema. AD + Usuáios = LDAP.

Encontrei alguma documentação sobre a ferramenta ldifde que por sinal é muito parecida com o ldapsearch. Bastou um /h para ver as opções e montar a consulta abaixo:

ldifde -s server -d "dc=dominio,dc=com" -f users.txt -p subtree -r (memberof="cn=Grupo,ou=users,dc=dominio,dc=com") -l samAccountName

-s: Servidor onde farei a consulta.
-d: meu dn.
-f: onde vou salvar a saída do comando.
-p: tipo de busca.
-r: filtro de pesquisa.
-l: atributo que quero listar.

Funcionou legal. Obviamente usei o Linux para ordenar os resultados em ordem alfabética e remover alguns lixos da saída do comando. Tenta fazer isso em PS e notepad para ver a tortura... : )

OBS: Fiz isso através de uma estação logada no domínio.

Grande abraço!

Fonte de auxílio:
http://support.microsoft.com/?scid=kb%3Ben-us%3B555636&x=11&y=11

Nenhum comentário:

Postar um comentário