Você está na página 1de 3

FACULDADE UNIAO

Bacharelado em Sistemas de Informao


Professor Luciano Roberto Rocha

AUTENTICAO DE USURIOS Autenticao de usurios um esquema que verifica se o usurio tem permisso para acessar determinados contedos do seu site da Web. Quando voc iniciar o desenvolvimento do seu site, pode desejar restringir o acesso somente a determinados membros da sua equipe de desenvolvimento. Ou, se o site corporativo de sua empresa contm dados financeiros delicados, voc pode desejar que o acesso a estes dados fiquem restritos a uma lista particular de investidores. Os desenvolvedores Web geralmente utilizam um dos seguintes tipos de autenticao de usurios por razes que variam desde a facilidade na instalao e manuteno at a forma como o esquema de autenticao funciona dentro do desenvolvimento da aplicao como um todo: Autenticao HTTP bsica - Este o tipo mais popular de autenticao. Utiliza funes embutidas do servidor da Web para limitar o acesso a documentos e diretrios inteiros. A popularidade deste esquema deve-se ao fato de que qualquer desenvolvedor de site, tendo o controle de seu prprio servidor ou mantendo seu site com um Provedor de Servios na Internet, tem a possibilidade de usar autenticao HTTP Bsica dentro dos diretrios de seu documento. Autenticao direcionada por banco de dados - Os nomes de usurios e senhas so mantidos em uma tabela de banco de dados e acessadas via script Restrio por endereo IP - Acesso limitado a um IP especfico ou faixa de IP.

AUTENTICAO HTTP BSICA


A autenticao HTTP usa um esquema de pergunta/resposta para autenticar usurios. O processo tem incio quando o usurio solicita um arquivo de um servidor da Web. Se o arquivo estiver dentro de uma rea protegida, o servidor responde com o erro 401 (autorizao requerida) e o browser exibe uma caixa de dilogo familiar tipo username/password (nome do usurio/senha). O usurio ento entra um nome e senha e clica em OK, enviando as informaes ao servidor para autenticao. Se o nome do usurio e a senha forem vlidos o servidor exibe o arquivo solicitado. Caso contrrio, a caixa de dialogo reaparece para que o usurio tente novamente. Para utilizar a autenticao bsica HTTP, voc precisa ter disponveis dois elementos: um servidor habilitando a autenticao e uma lista de usurios e senhas. PRIMEIRO PASSO: Criao do arquivo com usurios e senhas O primeiro passo para a configurao da autenticao bsica do HTTP criar o arquivo contendo os nomes dos usurios e as senhas. Este arquivo conter a lista de todos os usurios vlidos para uma rea protegida (ou domnio) E!m particular, junto com a lista de combinao de senhas para cada usurio. Voc poder colocar este arquivo em qualquer lugar do seu servidor da Web, de preferncia em um diretrio privado, no diretrio root/usr/local/apache/ (c:/appserv/apache2.2 no nosso

caso). Se voc colocar o arquivo de senhas em qualquer lugar do diretrio root (c:/appser/www), qualquer um com acesso Web poder acessar seu arquivo de senhas via URL. A estrutura do arquivo de senha a seguinte:

alunos:ger@l fulano:123 beltrano:abc456

Observe que o nome fornecido colocado no incio, seguido por dois pontos e pela senha. Entretanto o fato da senha ficar exposta em um arquivo, mesmo que o mesmo no esteja num local de fcil acesso tal atitude no seria recomendvel. Para isso vamos encriptar as senhas de acordo com o mtodo proposto para o Apache: para Unix e Linux usada a funo crypt() do prprio Apache (descrito na documentao htpasswd do Apache) e para Windows o MD5 modificado para Apache (descrito na rfc131 e que voc pode encontrar na Internet RFC/STD/FYI/BCP Archives). Use o programa htpasswd.exe includo na distribuio do Apache para criar o arquivo de nome de usurio/senha. Para criar este arquivo chamado users com uma entrada para o usurio patricia, faa o seguinte no diretrio /usr/local/apache/ (/appserv/apache2.2/bin) no nosso caso:
1. Digite htpasswd -c /appserv/apache2.2/users patricia. O flag -c avisa ao programa que o arquivo /arquiv~1/easyph~1/apache/users precisa ser criado. 2. Voc orientado a adicionar uma senha para o usurio josiane. Entre com a senha e pressione ENTER. 3. Voc orientado a confirmar a senha. Digite a senha novamente, exatamente como antes, e pressione ENTER.

Abra o arquivo /appserv/apache2.2/users para ver o nome do usurio que voc acabou de inserir, seguido por dois-pontos e depois pela verso criptografada da senha que voc digitou. Pronto!!! Sua senha est protegida: Para adicionar outros usurios bruno, paulo e ana por exemplo, siga os mesmos passos omitindo o flag - c, porque o arquivo users j existe. Como criar arquivos de grupo A categorizao dos seus usurios por grupo torna sua vida mais fcil, porque voc estar habilitado a permitir direitos de acesso para todo um grupo em vez de a 10 ou 12 (ou 200!) usurios individuais. Para permitir o acesso a todo um grupo voc no ter que listar manualmente cada membro individual deste grupo em seu arquivo de acesso correspondente. Para criar um arquivo de grupo, crie manualmente o arquivo /appserv/apache2.2/groups. Para definir os amigos do grupo, contendo os usurios patricia, bruno, paulo e ana. (que j foram definidos em seu arquivo users), digite o seguinte no arquivo groups: amigos: patricia bruno paulo ana Na prxima seo, iremos configurar o Apache para permitir que os membros do grupo amigos possam acessar diretrios protegidos.

Como configurar o servidor da Web As diretivas de configurao podem ser inseridas dentro do arquivo httpd.conf do Apache (normalmente em /usr/local/apache/conf/) ou em um arquivo separado com o nome .htaccess, colocado no diretrio protegido. Com arquivos .htaccess podemos implementar vrias funcionalidades em nossas pginas caso queira saber mais sobre essa implementao v at a pgina http://www.numaboa.com.br/informatica/webmaster/htaccess/ onde contm um tutorial bem completo sobre esse recurso Como exemplo, para proteger http://www.seudomnio.com.br/restrita/ usando o arquivo .htaccess, coloque o arquivo dentro do diretrio /restrita. Para proteger http://www.seudomnio.com.br/restrita/ usando httpd.conf. edite o arquivo httpd.conf e crie uma sesso iniciando com <Directory /appserv/www/restrita/> e terminando com </Directory>. Uma desvantagem do uso de mltiplos arquivos . htaccess que voc precisa manter controle de todos eles! Quando determinamos diretivas no arquivo httpd.conf, todas as diretivas esto em um local constante e sua manuteno mais fcil. Se voc colocar as diretivas em um arquivo. htaccess ou dentro de uma seo <Directory> </Directory> do arquivo httpd.conf, as informaes so as mesmas: AuthName o nome da rea protegida. Tambm pode ser qualquer nome que voc desejar, mas evite caracteres especiais como $, %, ou . AuthType o tipo de autenticao. Neste caso foi escolhida a Basic porque se trata de uma autenticao porque estaremos usando a autenticao HTTP bsica. AuthUserFile. O caminho completo para o arquivo que contm o nome do usurio e a senha. AuthGroupFile. O caminho completo para o arquivo que contm a lista de grupos, se existir. require. Especifica quais usurios e/ou grupos tm acesso rea protegida. Podem ser usurios vlidos, como josiane, grupos de amigos (amigos), ou uma combinao. Um exemplo de configurao de diretivas pode ser como esta:
AuthName "rea Restrita" AuthUserFile /appserv/apache2.2/users AuthGroupFile /appserv/apache2.2/groups AuthType Basic <Limit GET> require user patricia require group amigos </Limit>

Neste exemplo, qualquer um que tentar acessar o diretrio "restrita" ser recebido com uma caixa de dilogo usemame/password. Se o usurio for um membro do grupo amigos e entrar corretamente com seu nome e senha, as informaes protegidas sero exibidas. Portanto, imagine a quantidade de processamento do servidor necessria para um site da Web que receba mais visitantes do que apenas seus amigos do grupo. Conforme sua base de usurios aumenta e a performance do servidor da Web comea a cair, pense a respeito de mover os nomes de usurios e suas senhas para uma tabela separada no banco de dados (que pode ser analisada pelo servidor mais rapidamente do que um texto simples) e criar seus prprios sistemas de autenticao. Veremos isso nos prximos encontros!