Segue um site de exemplo, abaixo, que possui duas funções principais:
- Autenticar um usuário no AD via LDAP num site PHP, Active Directory 2012 da Microsoft.
- Retornar os membros de um grupo especifico via LDAP no site PHP.
Como falei, é um PHP exemplo para referência, bem simples e básico. A fim de mostrar o seu funcionamento e utilização das funções envolvidas.
Obs.: também é possível utilizar numa sessão criptografada, usando um AD CS e assinando um certificado cliente. Tenho um exemplo, em Perl para o mesmo. Talvez eu publico em outro momento, ou solicite via e-mail.
Para a alteração de senhas do usuário via LDAP, no Windows 2012, é obrigatório que a conexão seja criptografada via um AD CS.
Código fonte:
<?php
ini_set('error_reporting',E_ALL);
ini_set('display_errors',1);
$ldapconfig['host']="IP/NOME DO SERVIDOR";
$ldapconfig['port']="389"; #PORTA
$domain="DOMINIO";
$username="usuario";
$password="senha";
$grupo='DN do Servidor';
$filtro="(&(objectCategory=user)(memberOf=DN DO GRUPO))";
$ds=ldap_connect($ldapconfig['host'], $ldapconfig['port']);
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
$bind=ldap_bind($ds, $username .'@'.$domain, $password);
echo "Conectando com: ".$username."
";
if ($bind) {
echo "Login OK !
";
echo "Coletando informacoes basicas...
";
echo "Grupo utilizado: ".$grupo."
";
echo "Filtro de pesquisa: ".$filtro."
";
$pesquisa = ldap_search($ds,$grupo,$filtro) or die ("Erro na pesquisa...");
$info = ldap_get_entries($ds, $pesquisa);
$retorno=ldap_count_entries($ds,$pesquisa);
echo "
Retorno:".$retorno."
";
for ($i=0; $i<$retorno; $i++)
{
echo $i."-".$info[$i]["displayname"][0].",".$info[$i]["mail"][0]."
";
}
ldap_close($ds);
} else {
echo "Falha de login, usuário e senha invalido";
}
?>
Qualquer dúvida/crítica/sugestão/elogio, fico à disposição.
Abraço a todos.
:wq!
Nenhum comentário foi encontrado.