Autenticação em ASP.NET

Slides:



Advertisements
Apresentações semelhantes
Técnicas e Projeto de Sistemas André Mesquita Rincon Processo de Software Técnico Subsequente – Módulo III.
Advertisements

Informática Básica André Mesquita Rincon Técnico em Informática Integrado ao Ensino Médio – 1º ano – 2010/1.
Técnicas e Projeto de Sistemas
Banco de Dados Aula 01: Conceitos Básicos
Técnicas e Projeto de Sistemas
Introdução à Consulta 24/3/06. Categorias de comandos DDL : estruturação de objetos de BD Ex. create table, drop index, alter table... DML: manipulação.
XP - Continuous Integration Leonardo Pereira Demilis.
Críticas sobre Extreme Programming Francisco Hillesheim.
Trac é uma ferramenta open source e de interface web para controle de projetos de desenvolvimento de software. O objetivo do software é ajudar o desenvolvedor.
Universidade Federal da Bahia – Centro de Processamento de Dados – Preview Computadores 1 Uma Ferramenta Orientada a Modelos para Geração de Aplicações.
Universidade Federal da Bahia – Centro de Processamento de Dados – Preview Computadores 1 Uma Ferramenta Orientada a Modelos para Geração de Aplicações.
ANÁLISE E PROJETO DE SISTEMAS
Treinamento GP3 USP – GEFIM Abril de 2004 Alcides Pietro, PMP.
Fev./ /06/10 DGTI DIVISÃO DE TRATAMENTO DA INFORMAÇÃO UNIVERSIDADE DE SÃO PAULO Sistema Integrado de Bibliotecas São Paulo – Março/2011.
Sistemas Operacionais
Cecilia Rocha Ryerson University, Canada Seminário: Políticas Públicas e SAN CERESAN,Universidade Federal Fluminense (UFF) Niterói, 07/10/2010.
Balanced Scorecard (BSC)
Algoritmos com laços (ou seja, com conjuntos de instruções que devem ser executados repetidas vezes)
Gustavo Vieira Pereira
Protocolos Criptográficos. Múltiplas chaves em RSA Para RSA, escolhe-se dois números, e e d, tal que e. d = 1 mod (p-1).(q-1) Entretanto, também pode-se.
Gerência de Segurança. Por que gerir? Só aplicação de mecanismos Só aplicação de mecanismos cultura e política ignoradas cultura e política ignoradas.
Gerência de Segurança. Por que gerir? Só aplicação de mecanismos Só aplicação de mecanismos cultura e política ignoradas cultura e política ignoradas.
Webcast Gestão da Manutenção Histórico de Aplicações e Manutenções.
DÚVIDAS FREQUENTES SOBRE A PROMOÇÃO DE GRAU 1. Como é feita a indicação para promoção de grau? a) O Presidente da Assoc. dos Preletores escolhe os preletores.
PROGRAMA ESCOLA DA FAMÍLIA – DIRETORIA DE ENSINO DA REGIÃO DE OSASCO
Sindrome de down Atividades físicas – benefícios Interação/companheirismo Promove socialização/ relações de convívio Melhoria na qualidade de vida Através.
Servidores e Programação Web Redes de Computadores.
1 Oi BlackBerry. 2 Índice 1Configurando o seu aparelho BlackBerry 2Formatando o seu aparelho BlackBerry 3Solicitando senha de ativação empresarial 4Indicador.
O Fluxo de Testes © Alexandre Vasconcelos
1 Rejane Ramos Uma Estrutura para Protocolos Maleáveis de Roteamentos na Internet CURITIBA 2004 Trabalho apresentada à Disciplina de Comunicação de Dados.
Introdução Software para Laboratórios de Análises Clínicas
Arquitetura da informação Por Luiz Siqueira. O nome é imponente e a técnica está na moda. Contudo, o importante é o seguinte: a Arquitetura de Informação.
Planejando seu site Objetivos Abordagem Sílvia Dota.
Página de entrada A página de entrada, ou a index, representa um convite para o seu site.
Curso de Engenharia Industrial Madeireira – UFPR Prof. Umberto Klock
FERRAMENTAS DA QUALIDADE
Sensor Fotoelétrico por Sistema de Barreira
Conversor Analógico Digital
Modelo de Requisitos para Sistemas Informatizados de Gestão de Processos e Documentos do Judiciário MoReq-Jus Versão 1.0 TCU 19 de outubro de 2009 Neide.
ENCONTRO NACIONAL DE TECONOLOGIA DA INFORMAÇÃO PARA OS MUNICÍPIOS e do SOFTWARE PÚBLICO BRASILEIRO 1º Encontro Banco de Talentos.
Sistemas de Tutoria Inteligente (STI) Visam proporcionar instrução de forma adaptada a cada aprendiz. STIs adaptam o processo de instrução a determinadas.
CT-300 – Seminário de Tese 1/25 Um Framework Padrão para Simulação de Modelos de Robôs Móveis de Robôs Móveis Juliano A. Pereira Prof. Carlos H. C. Ribeiro.
CE-262 Ontologia e Web Semântica Prof. José M Parente de Oliveira
Segurança de Dados no MAER.
CE-262 Ontologia e Web Semântica Prof. José M Parente de Oliveira Sala 120 – Prédio da Computação Linguagens para a Web Semântica.
ITA - Instituto Tecnológico de Aeronáutica Aula #1.1 – Tutorial de Web Services utilizando o VS.NET Disciplina: CE 262 – Ontologias e Web Semântica. Prof.
Discos Rigídos 1. Tecnologia Raid
Jumpers 1. O que são Jumpers
GESTÃO DE CONFLITOS CONFLITOS
Novos Procedimentos de Concessão de Acesso ao Sistema AFI
Programa de Saúde Mental Comunitária Secretaria Municipal da Saúde
Projeto Mapeando a Saúde Secretaria Municipal de Saúde de Montes Claros - MG Dr. João Felício Rodrigues Neto Brasília - Fevereiro 2002.
. MINISTÉRIO DA SAÚDE Secretaria de Atenção à Saúde Departamento de Regulação, Avaliação e Controle Coordenação Geral de Sistema de Informações.
Introdução à Codificação de Canal Evelio M. G. Fernández
M e d A d m i n. Quem é o público alvo da ideia? Profissionais vinculados à área da saúde, em particular, àqueles responsáveis pela administração de medicamentos,
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias1 Bancos de Dados Mestrado em Engenharia de Computação área de concentração Geomática.
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
AES - Academia de Ensino Superior HTML - HiperText Markup Language Tecnologia para Web Prof.º Enrique Pimentel Leite de Oliveira
METODOLOGIA DE PESQUISA EM EDUCAÇÃO INTRODUÇÃO A PESQUISA ACADÊMICA Roberval Francisco de Lima SÃO ROQUE 2006.
1 SEGET- outubro de 2007 Antes do Second Life e do GoogleEarth: A utilização da simulação baseada na web para o estudo de processos operacionais Paulo.
Plano de Negócios seu guia definitivo www. josedornelas. com. br www
LINGUAGENS DE PROGRAMAÇÃO
Internet Aula 03. Histórico Durante a guerra fria, os EUA tiveram a necessidade de interligar laboratórios que trabalhavam para os militares; Essa interligação.
Sistemas Operacionais e Windows XP Aula 04 – DCA0302.
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Prof. André Laurindo Maitelli DCA-UFRN
PPA Qual a periodicidade? Quais os momentos do CICLO do PPA?
LP II Autenticação em ASP.NET
Soluções usando Microsoft conteúdo Management Server 2002 Connector for SharePoint Technologies - MVP Exchange Server
Transcrição da apresentação:

Autenticação em ASP.NET Enrique Pimentel Leite de Oliveira enrique.leite@aes.edu.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: Erro 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"> <credentials passwordFormat="Clear|SHA1|MD5"> <user name="username" password="password"/> </credentials> </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 file --> <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 redirecionada 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 um requisição à página segura; Se a requisição não conter 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.SetAuthCookie(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: 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();

Exercício Criar um sistema (com MasterPage) o qual possua 3 páginas sendo uma delas a de login. Uma das páginas deverá possibilitar que o usuário poste mensagens que deverão ser armazenadas em um cookie. A outra página deverá possibilitar ao usuário visualizar as mensagens gravadas. Na MasterPage deverá existir um link que possibilite ao usuário fazer logout.

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