Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Teteu

Php e Active Directory

Recommended Posts

Olá a todos, alguém sabe como fazer a validação do usuário numa intranet, desenvolvida em php, usando Active Directory, ou quando o usuário for abrir a intranet fazer a validação automática do usuário, através do Active Directory?

 

 

achei esse código mas não funcionou como esperado

 

<?php

function valida_ldap($srv, $usr, $pwd)

{

$ldap_server = $srv;

$auth_user = $usr;

$auth_pass = $pwd;

 

// Tenta se conectar com o servidor

if (!($connect = @ldap_connect($ldap_server)))

{

return FALSE;

}

 

// Tenta autenticar no servidor

if (!($bind = @ldap_bind($connect, $auth_user, $auth_pass)))

{

 

// se não validar retorna false

return FALSE;

}

else

{

 

// se validar retorna true

return TRUE;

}

 

} // fim função conectar ldap

 

// EXEMPLO do uso dessa função

if (valida_ldap("servidor", "dominio\usuario", "senha"))

{

echo "usuário autenticado";

}

else

{

echo "usuário ou senha inválida";

}

?>

 

retirado do site www.uebsite.com.br autor Pablo Augusto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai Goruks deu trampo mas consegui resolver o assunto.... o que faltava era copiar as dlls....

 

Depois de um dia e meio me matando para conseguir fazer esse negócio funcionar.... ai vai a solução para o problema que eu tinha.....

 

Para que se possa ser feita a validação usando Active Directory, é necessário descomentar no php.ini a linha:

 

extension=php_ldap.dll (e salvar as alterações)

 

Após salvar as alterações do php.ini copiar ele para a pasta C:/windows (no win xp)

 

Copiar as dlls para c:/windows/system32 (isso no win xp)

libeay32.dll

ssleay32.dll

Para finalizar pare o apache e inicie de novo. No meu cão foi preciso, parar o apache e fechar o programa que usar para desenvolver.

 

O código que estou usando para fazer a validação é:

 

<?php

function valida_ldap($srv, $usr, $pwd)

{

$ldap_server = $srv;

$auth_user = $usr;

$auth_pass = $pwd;

 

// Tenta se conectar com o servidor

if (!($connect = @ldap_connect($ldap_server)))

{

return FALSE;

}

 

// Tenta autenticar no servidor

if (!($bind = @ldap_bind($connect, $auth_user, $auth_pass)))

{

// se não validar retorna false

return FALSE;

}

else

{

// se validar retorna true

return TRUE;

}

 

} // fim função conectar ldap

 

// EXEMPLO do uso dessa função

if (valida_ldap("endereçoIP_ou_nomeServidor", "dominio\usuario", "senha"))

{

echo "usuário autenticado";

}

else

{

echo "usuário ou senha inválida";

}

?>

 

 

Foi retirado do site: http://www.phpbrasil.com/articles/article....erRow/1/id/1013

 

 

Espero ajudar quem mais esteja interessado sobre o assunto...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pequena atualização. Para identificar o usuário automaticamente.

 

<script>

function teste()

{

var objWshShell = new ActiveXObject("WScript.Shell");

var strUsername = objWshShell.ExpandEnvironmentStrings("%USERNAME%");

alert(strUsername);

return false;

}

</script>

 

Com esse script quando é aberta a página, já é identificado qual usuário está logado no AD... só colocar na opção onLoad no body.

 

valeu até mais

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.