Páginas

sábado, 14 de setembro de 2013

Fazendo autenticacao pelo AD Windows

TELA DE LOGIN
style type="text/css">
.diretoreservado {    color: #FFF;
}
.Usersenha {
    color: #FFF;
}
.usersernha {
    font-family: Verdana, Geneva, sans-serif;
}
.Usersenha p strong {
    font-family: Verdana, Geneva, sans-serif;
}
.intranet {
    font-family: Verdana, Geneva, sans-serif;
    font-size:25px;
    color: #FFF;
}
.Usersenha {
    font-family: Verdana, Geneva, sans-serif;
    color: #FFF;
}
.Usersenha {
    color: #FFF;
}
</style>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head>
<body background="img/bg.png">
</HEAD>
<BR><BR>
<script language="Javascript">
function valida()
{
var senha = document.na_autenticacao.senha.value
if (senha==""){
alert("Colaborador(a), É necessário o preenchimento de todos os campos");
document.na_autenticacao.senha.focus()
return false
}
}

</script>
</p>
<form method="post" action="valida.php" name="na_autenticacao"  onSubmit="return valida();">
   <tr>
     <td width="18%" class="Usersenha"><p align="center"><strong><img src="img/Login.png" alt="" width="64" height="64">     <span class="intranet">Intranet</span></strong></p>
       <p align="center" class="Usersenha">Informe seu usuário e senha de rede. </p>
              <p align="center" class="Usersenha">&nbsp;</p></td>
</tr>
<tr>
<td class="Usersenha"> <div align="center"></div></td>
              <td><div align="center">
                <table width="200" border="0">
                 <tr>
                     <td><div align="center"><span class="Usersenha">Usuário:</span></div></td>
                     <td><div align="center">
                       <span class="Usersenha">
                       <input name="usuario" type="text" size="25" maxlength="20" />
                     </span></div></td>
                  </tr>
                   <tr>
                     <td><div align="center"><span class="Usersenha">Senha:</span></div></td>
                     <td><div align="center">
                       <span class="Usersenha">
                       <input name="senha" type="password" size="25" maxlength="50" />
                     </span></div></td>
                   </tr>
                   <tr>
                     <td><div align="center"></div></td>
                     <td><div align="center">
                       <span class="Usersenha">
                       <input type="submit" value="ENTRAR">
                       <input type="reset" value="LIMPAR">
                     </span></div></td>
                   </tr>
                </table>

PROTECAO DA PAGINA

<?php

include "seguranca.php";
if ( $logado == ""){
exit("
<script>window.location=('intranet/negado.php')</script>
<script>alert('Você não tem acesso a essa página')</script>");
}
?>

VALIDACAO

<?php


include("seguranca.php");

//Aqui chamamos a funcao Login_LDAP que ira nos retornar True ou False
    if (Login_LDAP($_POST['usuario'],$_POST['senha'])) {
//Se retornar True (login com sucesso faça os paços abaixo

//Mostra mensagem na Tela, caso demore para processar as linhas abaixo (não ficar uma tela em branco)
        echo utf8_encode("usuário autenticado");
//Criar o cookie
        LoginCookies($_POST['usuario'],$_POST['senha']);
//Encaminha o usuario para a proxima pagina que neste caso chama-se abertura.php
        header("Location: index.php");
    } else {
//Se retornar Falso execute os paços abaixo

//mostra uma mensagem na tela informando que deu errado o logon e fornece um link para voltar a pagina anterior
        echo ("usuário ou senha inválida. <a href=\"javascript:history.go(-1)\">voltar</agt;");
//Chama a funcao de desconectar o usuario, esta funcao pode ser utiliza no botao sair tb da pagina, ele limpa os cookies
        expulsaVisitante();
    }

?>

//-------------------------------
Seguração.php

Você tem que configurar de acordo com seu servidor

<?php
//  Configurações do Script
// ==============================
$_SG['abreSessao'] = true;         // Inicia a sessão com um session_start()?
$_SG['validaSempre'] = true;       // Deseja validar o usuário e a senha a cada carregamento de página?
                    // Evita que, ao mudar os dados do usuário no banco de dado o mesmo contiue logado.
$_SG['AdServer'] = 'seu dominio';
$_SG['dominio'] = 'nome server';
$_SG['paginaLogin'] = 'negado.php'; // Página de login, caso falhe o usuario sera encaminhado para esta pagina


// ======================================
//   ~ Não edite a partir deste ponto ~
// ======================================

// Verifica se precisa iniciar a sessão
if ($_SG['abreSessao'] == true) {
global $_SG;
session_start();
}

function Login_LDAP($user, $password)
{
global $_SG;
    $ldap_server = $_SG['AdServer'];
    $auth_user = $_SG['dominio'] . trim(" \ ") . $user;
    $auth_pass = $password;

    // 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;
    }

}

Function LoginCookies($usuario,$senha)
{
global $_SG;
// Definimos dois valores na sessão com os dados do usuário
$_SESSION['usuarioID'] = $usuario; // Pega o valor da coluna 'id do registro encontrado no MySQL
$_SESSION['usuarioNome'] = $senha; // Pega o valor da coluna 'nome' do registro encontrado no MySQL

// Verifica a opção se sempre validar o login
    if ($_SG['validaSempre'] == true) {
        // Definimos dois valores na sessão com os dados do login
        $_SESSION['usuarioLogin'] = $usuario;
        $_SESSION['usuarioSenha'] = $senha;
    }
}
/**
* Função que protege uma página
*/
function protegePagina()
{
global $_SG;
    if (!isset($_SESSION['usuarioID']) OR !isset($_SESSION['usuarioNome'])) {
            // Não há usuário logado, manda pra página de login
            expulsaVisitante();
    } else if (!isset($_SESSION['usuarioID']) OR !isset($_SESSION['usuarioNome'])) {
            // Há usuário logado, verifica se precisa validar o login novamente
            if ($_SG['validaSempre'] == true) {
                // Verifica se os dados salvos na sessão batem com os dados do banco de dados
                if (!Login_LDAP($_SG['AdServer'],$_SG['dominio'] . trim(" \ ") . $_SESSION['usuarioLogin'], $_SESSION['usuarioSenha'])) {   
                    // Os dados não batem, manda pra tela de login
                    expulsaVisitante();
                }
            }
    }
}


/**
* Função para expulsar um visitante
*/
function expulsaVisitante() {
global $_SG;
// Remove as variáveis da sessão (caso elas existam)
unset($_SESSION['usuarioID'], $_SESSION['usuarioNome'], $_SESSION['usuarioLogin'], $_SESSION['usuarioSenha']);

// Manda pra tela de login
header("Location: ".$_SG['paginaLogin']);
}
global $logado;
$logado = $_SESSION['usuarioLogin'];
?>



Nenhum comentário:

Postar um comentário