Back-End

15 abr, 2010

Autenticação de usuário via HTTP

Publicidade

Para retomar as atividades vamos falar sobre autenticação de usuários, que na grande maioria das vezes é feita através de páginas com formulários personalizados. Hoje vou mostrar como fazer a autenticação através do HTTP, sem a necessidade de criar uma página personalizada para isso.

O PHP tem a capacidade de receber as variáveis que são originadas da autenticação HTTP, e com isso tratá-las adequadamente, verificando se as informações passadas são legítimas, independente do local onde a informação está armazenada, seja em um banco de dados, em um arquivo ou até mesmo em um servidor LDAP.

Não é necessário escrever muito código para montar um sistema de autenticação HTTP, basta fornecer ao browser os cabeçalhos correspondentes, assim o comportamento dele será igual ao do servidor web quando pede uma autenticação de usuário.
Veja abaixo um pequeno código que informa ao browser os cabeçalhos necessários para a identificação de uma autenticação HTTP.

Código:

<?php
   if(!isset($_SERVER['PHP_AUTH_USER'])){ 
	header('WWW-Authenticate: Basic realm="Autenticação HTTP"');
	header('HTTP/1.0 401 Unauthorized');      
	echo "<h1>Autenticação Necessária</h1>";      
	exit;
   } else {
	echo "Usuário: {$_SERVER['PHP_AUTH_USER']}<br/>";      
	echo "Senha: {$_SERVER['PHP_AUTH_PW']}<br/>";   
   }
?>

Esse código informa o cabeçalho que indica a autenticação HTTP (Linha 2), o código do erro caso não seja feita com sucesso a autenticação (Linha 3). Nas demais linhas, são impressões de textos feitas na página onde o código estiver inserido.

O código é bem simples, mas ele pode ficar mais robusto e com uma maior segurança se for utilizada a criptografia de dados.

Em uma próxima oportunidade falaremos um pouco sobre criptografia.

Até a próxima.