segunda-feira, 19 de janeiro de 2009

ldap_search + PHP + filter por atributo memberOf

Estou fazendo um sistema em php que faz pesquisas no Active Directory.
Precisei pesquisar todos os usuários do grupo Professores, como não é tão óbvia a pesquisa, resolvi registrá-la aqui:


[Introdução]

objectClass=<tipo do objeto> busca todos os objetos com o tipo informado
memberof=<grupo> busca todos anteriores que são membros do


[Pesquisa ERRADA]

$sFilter = "(&(objectClass=user)(memberof=Professores))";
$pResult = ldap_search($pLinkParaAD, "cn=usuarios,dc=teste,dc=com", $sFilter, array("name"));


- Esse foi o meu erro: memberof=Professores, não é assim que o AD grava o nome dos grupos.


[Pesquisa CORRETA]

$sFilter = "(&(objectClass=user) (memberof=CN=Professores,CN=Users,DC=teste,DC=com))";
$pResult = ldap_search($pLinkParaAD, "cn=usuarios,dc=teste,dc=com", $sFilter, array("name"));

- Deve ser informado o DN (nome distindo) do grupo: CN=Professores,CN=Users,DC=teste,DC=com

- Para descobrir-lo faça uma pesquisa com o ldap_search:
$sFilter = "(&(objectClass=group))";
$pResult = ldap_search($pLinkParaAD, "cn=usuarios,dc=teste,dc=com", $sFilter, array("dn"));

Nenhum comentário: