Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com esse script de conexão com AD


ajuda

Pergunta

Boa tarde pessoal.

Preciso de ajuda com esse script. Tenho uma intranet em php na empresa num servidor ubuntu e no outro servidor temos o Active Directory com todos os funcionários cadastrados. Eu preciso fazer com que ao fazer login na página da intranet, ele verifique no AD o usuário e a senha e caso o usuário seja cadastrado ele consiga logar na página. Consegui achar uns scripts pela internet, porém ele não esta verificando no AD se o usuário existe e não está autenticando ele.

Segue os scripts:

 

 

No Index.php, o funcionário coloca o usuário e a senha.

Index.php

<?php


    session_start('sessao');

?>
<html>
<head>
<script language="JavaScript" type="text/javascript" src="funcs.js"></script>
</head>
<body>

    <form method="post" action="verif.php" name="form" AUTOCOMPLETE='ON' onSubmit="return valida()">
        usuario:<br>
        <input type="text" name="usu" size="50" maxlength="50" >
        <br>
        Senha:<br>
        <input type="password" name="senha" size="50" maxlength="9" >
        <br><br>
        <input type="submit" value="Entrar">
    </form>

</body>
</html>

Aqui no verifica.php ele teria que verificar se os dados no login estão certos lá no AD e logar o usuário na intranet, porém dá esse erro: 

 

"; session_start(); $_SESSION['usu'] = $usu; header("Location: painel.html"); }else { echo "Usuario ou Senha Invalidos"; echo "
"; } ?>

 

Mesmo o usuário e a senha estando certos, ele não loga de jeito nenhum.

verifica.php

<?php

set_time_limit(0);

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 funcao conectar ldap

$dominio = "@meudominio.local";
$usu = $_REQUEST['usu'].$dominio;
$senha = $_REQUEST['senha'];
$ip_server = "192.168.1.3";

if (valida_ldap($ip_server, $usu, $senha)) {
    echo "usuario autenticado<br>";

    session_start();
    $_SESSION['usu'] = $usu;

    header("Location: painel.html");

}else {
    echo "Usuario ou Senha Invalidos";
    echo "<br><input type='button' value='voltar' onclick='location.href=\"index.html\";'>";
}

?>

E o funcs.js é só pra não tentar logar sem escrever os dados.

funcs.js

function valida() {

    if (form['usu'].value == "") {
        alert("O campo USUARIO e obrigatorio");
        form['usu'].focus();
        return false
    }

    if (form['senha'].value == "") {
        alert("O campo SENHA e obrigatorio");
        form['senha'].focus();
        return false
    }
}

Se alguém puder me ajudar e dizer onde está o problema e como consigo resolver isso, eu ficarei muito grato!

Desde já agradeço!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Ajuda, tudo joia!
Tenho um script que faz isso que você precisa.
Ela é uma função, não lembro mais onde tinha visto isto mas neste caso pode te ajudar.

function valida_ldap($srv, $usr, $pwd){
$ldap_server = $srv;
$auth_user = $usr;
$auth_pass = $pwd;
 
// conectar com o servidor
if (!($connect = @ldap_connect($ldap_server))) {
return FALSE;
}
 
// 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;
}
 
}
 
// Uso dessa função
$server = "192.168.xxx.xxx"; //IP ou nome do servidor
$dominio = "@seudominio.com.br"; //Dominio Ex: @gmail.com
$user = "nome do ususario".$dominio;
$pass = "senha do usuario";
 
if (valida_ldap($server, $user, $pass)) {
echo "<br>usuário autenticado<br>";
} else {
echo "usuário ou senha inválida";
}

É só adaptar para sua necessidades.
Abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...