LP II Autenticação em ASP.NET

Slides:



Advertisements
Apresentações semelhantes
Introdução Camada de Apresentação do Modelo OSI
Advertisements

HTML - HiperText Markup Language Tecnologia para Web
Eventos, Variáveis de Sessão e Aplicação
Framework para desenvolvimento web
Novos serviços da ASP.Net 2.0
Autenticação de usuários no ASP.NET
Autenticação de usuários no ASP.NET 2º Semestre 2009 > PUCPR > Tecnologia de Programação 2 Bruno C. de Paula.
Projeto Equipe Empresa destinada a prover acesso de internet para condomínios residenciais e estabelecimentos comerciais.
Tecnologia para Web Cookies
Tecnologia para Web JavaScript
Autenticação em ASP.NET
Tecnologia para Web Controles de Validação
Abordagem Estratégica ao Teste de Software
Emitindo seu Certificado Digital
Desenvolvimento de Sistemas Seguros
II Semana de Tecnologia da Informação
Trabalho – 03/09/ FIM.
Redes de Computadores Prof. Rafael Silva.
Enrique P. L. de Oliveira Tecnologia para Web Enrique P. L. de Oliveira
Treinamento Wifi-Visitante
PÁginas Dinâmicas Programação Web.
SOMOS Portal Integrado ATRIO. Conteúdo dinâmico: dados recuperados da BaseAtrio.
Estudo de Caso: Técnicas de Teste como parte do Ciclo de Desenvolvimento de Software Aline Pacheco Patric Ribeiro Diego Kreutz.
Rodrigo Cristiano Silva
Relatório do Trabalho Final
Segurança e auditoria de sistemas
Tecnologia para Web Tratamento de Exceções
Rodrigo Cristiano Silva
Treinamento AJAX Segurança
Gestão de Segurança em Comércio Eletrônico
[ Nome da Unidade Organizacional] [Data]
CONCURSO FLEXFORM COMO É FEITA A VOTAÇÃO, SEGURANÇA E VALIDAÇÃO DOS VOTOS.
Aspectos de segurança em redes wireless Redes wireless Aula 10 – Aspectos de segurança em redes wireless Prof. Espec. Diovani Milhorim.
DESENVOLVIMENTO WEB II PHP Entrada e saída básica de dados (2ª parte)
Professor: Márcio Amador
Luiz Antonio Torres, Maio/2014
TERMINAL WEB.
Sistema Online Braskarne
O Processo de desenvolvimento de software
Marcio de Carvalho Victorino Processo Unificado. Unidade VI: Teste.
SIT – T9 Tecnologias e Ferramentas para Garantir a Segurança Marcio Luiz Angeli.
Segurança e Auditoria de Sistemas
Arquitetura das JSP - Aula 2
Ferramentas de Desenvolvimento WEB
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Controle de Acesso Kerberos
Sistema de Identificação OpenID
Controle de Validação Profº. Enrique Pimentel Leite de Oliveira
Princípios Fundamentais e Secundários
WSJET são serviços que ficam disponíveis na Internet para os clientes autorizados pela Jet Tecnologia, ou seja, são Web Services. Os Web Services são.
Apache Autenticação por usuário e senha. Introdução O princípio da autenticação é simples. O cliente envia o seu login e sua senha para o servidor Apache.
Controles Gerais Prof.: Cheila Bombana. Controles Gerais Prof.: Cheila Bombana.
Prof.°: João Henrique Disciplina: SOR II
Formação Livre II O Valor da Tecnologia e a Inovação IST – MEE (1º ano curricular) 2011/2012, 1º semestre Prof. responsável – António S. Carvalho Fernandes.
Treinamento e entrega do projeto
Configurando o NAS O Servidor de Acesso à Rede com Segurança AAA.
O usuário está dentro da empresa tenta acessar a Web.
Segurança da Informação
Serviço Nacional de Aprendizagem Comercial do Rio Grande do Sul Informação e Comunicação Habilitação Técnica de Nível Médio Técnico em Informática Prof.
SERVIDOR PROXY - SQUID.
Serviços de rede e internet Jackson Eduardo da Silva.
Active Directory Profa. Priscila Facciolli Sistemas Operacionais.
PROJETO WEB SITE ESCOLAR E. E. PADRE ANTÔNIO CORRÊA GRUPO DONADONI –
Alanna Fagundes Almeida nº02 Ipanema Manutenção preventiva/corretiva de computadores.
Serviço de segurança Dupla: Leonardo e Marcos
Fique Sabendo 2011 Cadastro dos Municípios Participantes.
Aspectos de Segurança Autenticação e Controle de Acesso Ricardo Cavalcanti Jobson Ronan
Aula Virtual Projeto de Sistemas Distribuídos. Roteiro Introdução (Revisão) Tecnologia Arquitetura Tolerância a Falha Segurança.
Escola de Ciência e Tecnologia Curso: Bacharelado SI Disciplina: Segurança em Redes 1 Configuração Segura Principais Serviços.
Transcrição da apresentação:

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

Introduçã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.

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.

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

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.

Autenticação A sintaxe da tag <authentication>, utilizada para configurar a autenticação é: <authentication mode="Windows|Forms|Passport|None"> <forms name="name" loginUrl="url" protection="All|None|Encryption|Validation" timeout="30" path="/" requireSSL="true|false" slidingExpiration="true|false"> </forms> <passport redirectUrl="internal"/> </authentication>

Autorização A sintaxe da tag <authentication>, utilizada para configurar a autenticação é: <authorization> <allow users="comma-separated list of users" roles="comma-separated list of roles“ verbs="comma-separated list of verbs"/> <deny users="comma-separated list of users“ roles="comma-separated list of roles“ </authorization>

Autorização Subtag Descrição <allow> 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. <deny> 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.

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 <!-- web.config --> <authentication mode = "[Windows|Forms|Passport|None]"> </authentication>

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.

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.

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.

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. Servidor Web Cliente Requisição: Bemvindo.aspx Resposta: Login.aspx Usuário autenticado Requisição: Login.aspx + dado Resposta: Bemvindo.aspx + Cookie

Autenticação Forms O processo para autenticação via Forms é: 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; 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; O usuário pode, então ser redirecionado de volta à página inicialmente requisitada.

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

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. <configuration> <system.web> <authentication mode="Forms"> <forms name="401kApp" loginUrl="/login.aspx"></forms> </authentication> </system.web> </configuration>

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 <authorization>: <configuration> <system.web> <authentication mode="Forms"> <forms name="401kApp" loginUrl="/login.aspx"></forms> </authentication> <authorization> <deny user=“?” /> <!-- acesso negado a usuário anônimos !--> </authorization> </system.web> </configuration>

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; Uma página (restrito.aspx) com um label para testar se a autenticação está funcionando.

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

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.

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.Text, false); } else //Exibir mensagem de erro de autenticação

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();

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