Jump to content
Fórum Script Brasil
  • 0

Ajuda com esse script de conexão com AD


ajuda
 Share

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...