Você está na página 1de 4

Segurana no desenvolvimento de aplicaes Web

Autenticao/Autorizao em ASP.NET - Parte 1




por Ricardo Oneda
04 de maio de 2004

Introduo

Segurana um assunto muito discutido atualmente. Com a popularizao da Internet, muitos
foram os sistemas migrados para esta nova plataforma, mas infelizmente, na maioria das vezes, o
aspecto Segurana foi deixado em segundo plano, seja por negligncia, por falta de conhecimento
do novo modelo de aplicaes que a Web trouxe e suas implicaes no que se refere Segurana ou
at mesmo por falta de ferramentas adequadas que facilitassem esse trabalho complexo. O fato
que o desenvolvimento de aplicaes Web um mundo totalmente novo e diferente do mundo das
aplicaes desktop, onde o ambiente no qual a aplicao seria executada era um ambiente
controlado e mais seguro (pelo menos, teoricamente).

Como j foi dito, Segurana um assunto complexo e tambm muito abrangente (e porque no
dizer, tambm muito interessante). Neste artigo, abordarei uma pequena rea, que engloba a
Autenticao e Autorizao de usurios em uma aplicao Web desenvolvida em C#/ASP.NET.
Explicarei quais so os tipos de autenticao disponveis no ASP.NET e veremos como o .NET
Framework nos fornece vrias classes prontas para serem usadas, sem a necessidade de
desenvolvermos nada do zero, sendo necessrio somente configurarmos algumas propriedades,
poupando-nos tempo e, o mais importante, evitando erros que poderiam comprometer a Segurana
de nossa aplicao.


Definindo Autenticao e Autorizao

Antes de prosseguirmos, precisamos definir dois conceitos fundamentais quando se fala de
Segurana: Autenticao e Autorizao. Autenticao o processo de validar a identidade de um
usurio para termos certeza de que ele quem realmente ele diz ser. Autorizao o processo de
garantir direitos e restries a um determinado usurio, aps sua identificao feita no momento da
autenticao.

O ASP.NET oferece algumas alternativas para a Autenticao. O mtodo de Autenticao que uma
aplicao ASP.NET utiliza fica configurado no arquivo web.config, que um arquivo XML utilizado
para diversas configuraes de aplicaes Web do .NET Framework e que fica na pasta do seu
projeto. Veremos a seguir os diversos mtodos de Autenticao suportados pelo ASP.NET


Sem Autenticao

a forma mais simples de Autenticao, pois nenhuma Autenticao necessria, ou seja, todos os
usurios tm acesso a qualquer parte da aplicao. Para configurar esse tipo de Autenticao em
sua aplicao ASP.NET, altere a tag authentication do arquivo de configurao web.config para que
fique conforme abaixo:

<authentication mode="None" />


Autenticao Windows

A Autenticao Windows permite autenticar um usurio baseado numa conta de usurio do
Windows. Este tipo de Autenticao s tem sentido em ambientes controlados, como em uma
Intranet. Para configurar esse tipo de Autenticao em sua aplicao ASP.NET, altere a tag
authentication do arquivo de configurao web.config para que fique conforme abaixo:

<authentication mode="Windows" />

Neste caso, o verdadeiro responsvel pela autenticao do usurio o IIS (Internet Information
Server - servidor Web da Microsoft). Por isso importante saber como configurar a Autenticao do
IIS, que nos oferece quatro opes:

Anonymous Authentication: o IIS no faz nenhum tipo de autenticao, permitindo que
qualquer usurio acesse a aplicao ASP.NET;
Basic Authentication: o usurio tem que fornecer uma conta de usurio do Windows e
senha, que so enviados em claro (sem criptografia) pela rede, o que a torna um tanto
insegura.
Digest Authentication: neste tipo de Autenticao, o usurio tambm tem que fornecer
uma conta de usurio do Windows e senha, mas um algoritmo de hash (uma espcie de
criptografia) aplicado na senha antes de ser enviada pela rede. Esse tipo de autenticao
requer Internet Explorer 5.0 ou superior e que todas as contas de usurios do Windows
estejam no Active Directory.
Windows Integrated Authentication: neste tipo de Autenticao, a senha nunca
transmitida pela rede, mas os usurios precisam de uma conta de usurio do Windows. a
mais segura das opes.

Vamos um exemplo bem simples de Autenticao do IIS. Inicie o Visual Studio .NET, v ao menu
File e escolha New New Project (ou pressione Ctrl + Shift + N). A janela New Project ser
apresentada. Escolha Visual C# Projects e depois o template ASP.NET Web Application, conforme
figura abaixo. O nome do nosso projeto ser SegASPNET. Depois de tudo configurado, clique em
OK.



Abra o arquivo web.config da sua aplicao e procure pela tag authentication. Perceba que o
padro a autenticao Windows do ASP.NET.

Agora, abra o Painel de Controle do Windows e d um duplo clique em Administrative Tools e depois
um duplo clique em Internet Information Services. Ser aberto o gerenciador do IIS. No lado direito
da tela, expanda os ns da Tree View at encontrar a pasta do projeto SegASPNET, que acabou de
ser criado. Clique com o boto direito sobre a pasta e escolha Properties. Clique na guia Directory
Security e na seo Anonymous access and authentication methods, clique no boto Edit. A janela
abaixo ser mostrada:



Desmarque as opes Anonymous access e Integrated Windows authentication. Agora, marque a
opo Basic Authentication. Voc receber uma mensagem explicando que este tipo de autenticao
no seguro. Clique em Yes para continuar. Clique em OK duas vezes para fechar a janela de
configurao.

Volte para o Visual Studio .NET e execute a aplicao SegASPNET. Ser apresentada uma tela
pedindo um usurio do Windows e senha, conforme figura abaixo:


Volte novamente ao gerenciador do IIS e desfaa a alterao na Autenticao, voltando para a
situao original, ou seja, com as opes Anonymous access e Integrated Windows authentication
habilitadas. Execute novamente a aplicao e perceba que agora a janela que pedia usurio e senha
no aparece mais.


Autenticao Passport

Este tipo de autenticao utiliza o servio Passport da Microsoft. Quando voc utiliza este tipo de
Autenticao, todo processamento ocorre nos servidores do Passport. Este um servio pago e
maiores detalhes sobre ele podem ser obtidos em http://www.passport.net. Para configurar esse
tipo de Autenticao em sua aplicao ASP.NET, altere a tag authentication do arquivo de
configurao web.config para que fique conforme abaixo:

<authentication mode=" Passport" />

Um maior aprofundamento deste tipo de Autenticao foge do escopo deste artigo.


Concluso

Nesta primeira parte do artigo vimos os conceitos de Autenticao e Autorizao. Tambm vimos
trs tipos de Autorizao do ASP.NET: nenhuma, Windows (e os mtodos utilizados pelo IIS) e
Passport. Na segunda parte deste artigo, explicarei sobre o mtodo de Autenticao do ASP.NET que
est faltando e o mais utilizado no desenvolvimento de aplicaes Web: Forms Authentication.


Referncias

ASP.NET Web Application Security
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconaspnetwebapplicationsecurity.asp

ASP.NET Authentication
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconASPNETAuthentication.asp




Sobre o Autor

Ricardo Oneda Pereira de Toledo (ropt@hotmail.com) formado em Processamento de Dados
pela Faculdade de Tecnologia de So Paulo e MCAD - Microsoft Certified Application Developer,
com nfase em aplicaes Web com C# e Banco de Dados SQL Server 2000. Atualmente trabalha
como Analista de Sistemas, desenvolvendo aplicaes Web nas linguagens C e C++.

Você também pode gostar