0

Autenticando no Active Directory com PHP via LDAP

criado por Pablo Augusto em 21/08/2005 8:01pm
Tive muitas dificuldades para obter informações de como realmente o PHP se comunica com o LDAP, e de como implementar esta tecnologia em meu ambiente de trabalho, mas com um pouco de esforço (e algum conhecimento de inglês) consegui tornar esta uma realidade em minha empresa. Para outras pessoas, que como eu, queiram implementar esse tipo de autenticação esse artigo vai ser muito útil.

O que é o LDAP

O Lightweight Directory Access Protocol (LDAP) é um protocolo para acesso e modificação de informações de diretório através da rede. O LDAP permite que você localize pessoas, organizações, e outros recursos tais como arquivos e dispositivos na rede, seja na Internet ou numa Intranet.

Para entendermos melhor podemos tomar como comparação os programas de banco de dados. O MySQL, MSSQL Server e Oracle dentre tantos outros são SGBDs com características e definições próprias, mas para qualquer um a linguagem universal de comunicação e acesso a dados é o SQL. O LDAP nada mais é, do que a linguagem de comunicação entre qualquer aplicação com o Active Directory.

Mais informações sobre o LDAP:
- LDAP Zone http://www.ldapzone.com/
- ldapman.org http://www.ldapman.org/ apresenta alguns bons artigos introdutórios.
- The LDAP Schema Repository http://ldap.akbkhome.com/ esse é indispensável.

Isto depende muito do cenário tecnológico no qual que você se encontra. O requisito mínimo indispensável para que você possa desfrutar desta tecnologia, é ter acesso à um ambiente que conte com algum servidor da plataforma WINDOWS que ofereça o recurso do AD (Active Directory). Se você já não se enquadra neste requisito não há possibilidades, até onde conheço, para realizar tal tarefa.

O segundo requisito é você entender a estrutura do AD de seu domínio. No meu caso foi à parte realmente mais complicada pois, a empresa no qual trabalho tem uma arvore de AD muito vasta e complexa, contando com muitos usuários subdivididos em vários domínios e em suas respectivas Ous (Organizations Units). Se você não entende muito bem essa linguagem, recomendo que pesquise informações sobre como funciona o AD antes de prosseguir, abaixo seguem link de sites que podem ajudar no processo de aprendizado sobre o AD:

- http://www.microsoft.com/brasil/technet/centralwindows/centromigracao/activedirectory/gerenciando.mspx
- http://support.microsoft.com/default.aspx?scid=kb;en-us;325284

Agora que já conhece o PHP, LDAP e o AD, você tem respaldo suficiente para analisar (tomando como base o contexto no qual sua empresa ou cliente esta inserido) para avaliar se esta é a melhor solução a se adequar ao seu caso. Lembre-se cada caso é um caso, e por isso devemos analisar cuidadosamente todos os casos antes de definir qual o melhor método de autenticação para nossa(s) aplicação(ões).

Comentários:

Mostrando 1 - 10 de 12 comentários
Michel disse:
usei os codigos de exemplo deste artigos mas as paginas resultam em conteudo em branco!!!
09/10/2007 2:41pm (~2 anos atrás)

diego silva disse:
Ola amigo gostaria de saber o seguinte, tenho que configurar no php.ini e habilitar a extensions tambem, e oque mais precisa fazer pois nao esta funcionando o php nao esta reconhecendo as funções do ldap!
aguardo sua resposta.
17/09/2007 11:13am (~3 anos atrás)

Faltou dizer aí que precisa copiar as dlls libeay32.dll e ssleay32.dll para o windows\system32. E também um bom link http://br.php.net/manual/pt_BR/ref.ldap.php
27/03/2006 6:53am (~4 anos atrás)

Click disse:
Ótimo seu artigo sobre LDAP, bem didático. Estou na expectativa do seu próximo artigo sobre LDAP.
Parabéns!
05/03/2006 4:58pm (~4 anos atrás)

Exatamente o que eu precisava! Excelente artigo e extremamente útil. Bom ter pessoas que contribuam com a comunidade. Parabéns!
06/02/2006 3:29am (~4 anos atrás)

Ramon Lima disse:
(Aplausos) Na internet não tem material neste assunto, é muito raro conforme o caro autor disse, até em inglês.
Parabéns, great job!
19/09/2005 8:28pm (~5 anos atrás)

Pablo Augusto disse:
Um bom começo é pesquisar no google, (pai dos burros online .. srrsr)

em apenas 5 minutos eu consegui bons sites ...


de uma olhada :

http://www.google.com.br/search?hl=pt-BR&q=radius+php+ldap+integracao&meta=cr%3DcountryBR
13/09/2005 12:24pm (~5 anos atrás)

Airton disse:
Alguém já trabalhou com integração com o LDAP + RADIUS?
13/09/2005 10:51am (~5 anos atrás)

Pablo Augusto disse:
Com Certeza,

Voce pode proceder normalmente ...

Por exemplo, assim qeu o usuário for autenticado com a função que eu disponibilizei no site, ao envez de escrever "usuario aurenticado!!!" você vai inserir o codigo para gerar sua session e inserir os dados do usuario na mesma ..

qualquer duvida é só falar
06/09/2005 11:48pm (~5 anos atrás)

Paulo Santos disse:
Gostaria de saber se tem como eu gardar a validação do ldap em sessions ou cookies para verificação posterior.
Tipo o usuário loga no sistema com o username e a senha do ldap, o script grava em uma session e dai libera uma página restrita!
Seria possível???
Se sim como eu poderia fazer??
06/09/2005 10:36pm (~5 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)