A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

LP II Autenticação em ASP.NET Profº. Enrique Pimentel Leite de Oliveira

Apresentações semelhantes


Apresentação em tema: "LP II Autenticação em ASP.NET Profº. Enrique Pimentel Leite de Oliveira"— Transcrição da apresentação:

1 LP II Autenticação em ASP.NET Profº. Enrique Pimentel Leite de Oliveira

2 IntroduçãoIntrodução Segurança de sistemas Web é um assunto complexo e muitas vezes confuso, porém necessário. Esse tipo de segurança envolve validação das credencias de usuários (autenticação) e permissão de acesso aos recursos (autorização). Em ASP.NET, existem diversas formas de implementar segurança em páginas Web.

3 Autenticação e Autorização A autenticação e a autorização devem ser configuradas de forma correta para que a segurança da aplicação Web funcione adequadamente. A autenticação é o processo de identificação do usuário que está requisitando a informação. O usuário é identificado por uma credencial, normalmente um nome de usuário e uma senha. O objetivo da autenticação é garantir que a pessoa é quem está dizendo que é. Se a autenticação falhar (credenciais inválidas) o acesso será negado a um usuário desconhecido Por outro lado, se a credencial for válida o acesso será permitido. Uma vez fornecida a identificação do usuário, o sistema definirá quais recursos poderão ser acessados. Esse processo conhecido como autorização, visa estabelecer níveis de acesso aos recursos.

4 Processo típico de Segurança Credenciais do usuário Autenticado? Tenta acessar o recurso Autorizado? Acesso Negado Acesso ao recurso Não Sim

5 Configurando a aplicação Web A configuração da autenticação e autorização no ASP.NET é realizado no arquivo web.config e, quando necessário nas configurações do IIS. Atenção: Erros na configuração do web.config podem causar erros inesperados na aplicação.

6 AutenticaçãoAutenticação A sintaxe da tag, utilizada para configurar a autenticação é:

7 AutorizaçãoAutorização A sintaxe da tag, utilizada para configurar a autenticação é:

8 AutorizaçãoAutorização SubtagDescrição Permite acesso aos recursos basedo em: users: Uma lista sepadara por vígula de nomes que estão autorizados à acessar os resursos. Um ponto de interrogação (?) permite usuários anônimos; um asterisco (*) permite todos os usuários. roles: Uma lista separada por vírgulas de regras que dão acesso aos recursos. verbs: uma lista separada por vírgulas de métodos de transmissão HTTP que podem ser utilizados para acessar os recursos. Os Verbs registrados para o ASP.NET são GET, HEAD, POST, e DEBUG. Impossibilita o acesso aos recursos basedo em: users: Uma lista separada por vírgulas de nomes de usuários que não têm acesso ao recurso. Um ponto de interrogação (?) indica que usuários anônimos não tem acesso; um asterísco (*) indica que todos os usuários não tem acesso. roles: Uma lista separada por vírgulas de regras que não permitem acesso aos recursos. verbs: uma lista separada por vírgulas de métodos de transmissão HTTP que não podem ser utilizados para acessar os recursos. Os Verbs registrados para o ASP.NET são GET, HEAD, POST, e DEBUG.

9 Provedores de autenticação O ASP.NET fornece 4 provedores de autenticação: None – Sem autenticação Forms – Confia em logon via formulário e cookies Passport – Serviço de autenticação centralizado provido pela Microsoft Windows – baseado na autenticação do Windows, o IIS cuida da autenticação O provedor é especificado no arquivo Web.config

10 Autenticação Passport Este é um serviço de autenticação centralizado provido pela Microsoft que oferece um único logon e serviços específicos para os sites ASP.NET participantes, em conjunto com o Microsoft® Passport software development kit (SDK), provê funcionalidades semelhantes a autenticação Forms para usuários do Passport.

11 Autenticação Windows Este provedor utiliza as potencialidades de autenticação do IIS. Depois que o IIS completa sua autenticação, ASP.NET usa a credencial da identidade autenticada para autorizar o acesso.

12 Autenticação Forms Com este provedor requisições não autenticadas são redirecionadas para um formulário HTML especificado. O usuário pode então fornecer as credenciais necessárias, e enviar o formulário de volta para o servidor. Se a aplicação autenticar a requisição (usando lógica específica de aplicação), o ASP.NET emite um cookie que contém as credenciais ou uma chave para readquirir a identidade do cliente. Requisições subseqüêntes são emitidas com o cookie no cabeçalho da requisição, significando que autenticações subseqüêntes são desnecessárias.

13 Autenticação Forms Uma interface de usuário personalizada aceita credenciais do usuário Autenticação é efetuada de acordo com um banco de dados usando código próprio, por exemplo. Cliente Requisição: Bemvindo.aspx Resposta: Login.aspx Requisição: Login.aspx + dado Resposta: Bemvindo.aspx + Cookie Servidor Web Usuário autenticado

14 Autenticação Forms O processo para autenticação via Forms é: Um cliente faz uma requisição à página segura; Um cliente faz uma requisição à página segura; Se a requisição não contiver um cookie de autenticação válido, o Web Server redireciona o usuário para a URL especificada no atributo loginUrl da tag Authentication no arquivo web.config; Se a requisição não contiver um cookie de autenticação válido, o Web Server redireciona o usuário para a URL especificada no atributo loginUrl da tag Authentication no arquivo web.config; Credenciais são fornecidas no ofrmulário e enviadas via método post; Credenciais são fornecidas no ofrmulário e enviadas via método post; Se as credenciais forem válidas (isso pode ser determinado de diferentes formas), o ASP.NET cria um cookie de autenticação no cliente; Se as credenciais forem válidas (isso pode ser determinado de diferentes formas), o ASP.NET cria um cookie de autenticação no cliente; O usuário pode, então ser redirecionado de volta à página inicialmente requisitada. O usuário pode, então ser redirecionado de volta à página inicialmente requisitada.

15 ASP.NET IIS Autenticação Forms Permissão Cookie autorizad o? Redireciona para página de login Acesso Negado NãoSim Requisição cliente Usuário fornece as credenciais Autenticado? Cria o cookie Acesso permitido Não Sim

16 Autenticação Forms Configurações necessárias para autenticação do tipo Forms. O exemplo acima configura um site com autenticação baseada em formulário, especificando o nome do cookie e a págian de login, utilizada se a autenticação inicial falhar.

17 Autenticação Forms Quando a autenticação do tipo Forms é utilizada, torna-se necessário impedir o acesso de usuários não autorizados (caso contrário, por que ativar a autenticação do tipo Forms?). Para isso utiliza-ses a tag :

18 Autenticação Forms Para utilizar as configurações realizadas no web.config, deve-se criar: Página de login (default.aspx), contendo dois Textbox (usuário e senha) e um botão para autenticação; Página de login (default.aspx), contendo dois Textbox (usuário e senha) e um botão para autenticação; Uma página (restrito.aspx) com um label para testar se a autenticação está funcionando. Uma página (restrito.aspx) com um label para testar se a autenticação está funcionando.

19 Autenticação Forms Código para autenticação do usuário (no evento click do botão de login): if (txtUsuario.Text == nome && txtSenha.Text == 1234) { FormsAuthentication.SetAutCookie(txtUsuario.Text, false); Response.Redirect(restrito.aspx); } else //Exibir mensagem de erro de autenticação

20 Autenticação Forms Após o usuário digitar suas credenciais, é realizada uma comparação do usuário e senha. Caso sejam iguais, o método SetAuthCookie da classe abstrata FormsAuthentication, cria um cookie com o nome do usuário (primeiro parâmetro). O segundo parâmetro especifica se o cookie será ou não armazenado na máquina do cliente, para eventuais novos acessos. Em seguida o usuário é direcionado para a página restrito.aspx. Se as credenciais forem inválidas, devemos exibir uma mensagem de erro.

21 Autenticação Forms Outro método da classe FormsAuthentication que podemos utilizar para criar o ticket que possibilita o usuário acessar áreas restritas é o RedirectFromLoginPage, que cria o cookie exatamente igual ao SetAuthCookie, porém redireciona o usuário a página inicialmente requisitada. Caso a página requisitada seja a de login, esse método redireciona o usuário para a página default.aspx. if (txtUsuario.Text == nome && txtSenha.Text == 1234) { FormsAuthentication.RedirectFromLoginPage(txtUsuario.Te xt, false); } else //Exibir mensagem de erro de autenticação

22 Autenticação Forms Após realizada a autenticação o usuário terá acesso a todo conteúdo permitido do site. Para finalizar a autenticação do usuário, utiliza- se o método SignOut(), da classe FormsAuthentication, o botão ou link de logout deve ter o seguinte código: Esse método remove o cookie de autenticação e força o usuário realizar novo login, caso deseje acessar um recurso restrito novamente. FormsAuthentication.SignOut();

23 BibliografiaBibliografia Autenticação em ASP.NET Autenticação em ASP.NET Linha de Código - ASP.NET Configurando a segurança na sua aplicação Linha de Código - ASP.NET Configurando a segurança na sua aplicação Protegendo o Aplicativo ASP.NET e os Web Services Protegendo o Aplicativo ASP.NET e os Web Services Payne, Chris. Teach Yourself ASP.NET in 21 Days, Second Edition. Sams


Carregar ppt "LP II Autenticação em ASP.NET Profº. Enrique Pimentel Leite de Oliveira"

Apresentações semelhantes


Anúncios Google