Forms Authentication em ASP.NET



Documentos relacionados
Comunicação de Dados de Autenticação e Credenciais de Acesso para Resposta ao Inquérito

Walkthrough: Creating a Web Site with Membership and User Login.

Tarefa Orientada 2 Criar uma base de dados


Requisitos para a Federação de um serviço web. Serviço Utilizador RCTS Janeiro de 2010

Profº. Enrique Pimentel Leite de Oliveira

Manual de Administração Intranet BNI

ZS Rest. Manual Avançado. Ementas : e SMS. v2011

EAmb V.1 ESPOSENDE AMBIENTE. GestProcessos Online. Manual do Utilizador

ZSRest e ZSPos Multiposto

Desenvolvimento de uma Aplicação WEB para monitorização de BD Oracle

Guia Rápido do Contacts

Manual de Utilização

Com o smartmessage podemos de forma muito fácil e usando um qualquer cliente de , como por exemplo:

edgebox - PTEDU edgebox como servidor de autenticação nas escolas 2009 Critical Links S.A. All rights reserved. Saturday, July 18, 2009

MANUAL DO UTILIZADOR DE REDE

Manual do Aluno Plataforma de e-learning Moodle

Exercício em ASP.NET (Agenda)

Procedimentos para a divulgação de eventos no site da ECUM

Conceitos de relação de confiança

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.

Proxy. Krishna Tateneni Tradução: José Pires

PACWEB Módulo de Pesquisa MANUAL DO UTILIZADOR

VENDASWEB IMPLANTAÇÃO E CONFIGURAÇÃO

EDUTec Learning. José Paulo Ferreira Lousado

JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem

Relatório SQUID e SAMBA. Instalação e Configuração de Servidores de Rede

Manual do PolicyKit-kde. Daniel Nicoletti Tradução: Luiz Fernando Ranghetti

Construção Páginas de Internet

Escola Superior de Tecnologia de Setúbal. Projecto Final

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

Java Mail Server. Manual do Utilizador

GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL

LinkCities MANUAL GESTOR DE CONTEÚDOS. Cities all together, make a better world. Copyright 2014 Link Think. Todos os direitos reservados.

Cookies. Krishna Tateneni Jost Schenck Tradução: José Pires

Registo como Agente. De seguida, terá de editar a sua informação de agente, carregando em Profile e, de seguida, em Edit.

Introdução ao Active Directory AD

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

Solutions for Information Technologies. BIS-Navegador. Manual de Instalação para Microsoft SQL Server

Aplicações de Escritório Electrónico

Impressão do Manual do Utilizador

Manual de Utilizador Documentos de Transporte. TOConline. Suporte. Página - 1

Microsoft Office FrontPage 2003

Engenharia de Software. Enunciado da Segunda Parte do Projecto

GlobalPhone - Central Telefónica. Manual do Portal de Selfcare Utilizador

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

FemtoM2M. Programação de Firmware. Versão: 1.0 Data:

Trabalho de Desenvolvimento de Sistemas de Software GereComSaber 1ª Fase

Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas.

COLIBRI Ambiente Colaborativo Multimédia MÓDULO MOODLE. Rui Ribeiro FCCN - Dezembro 2010

ZS Rest. Manual Avançado. Instalação em Rede. v2011

EDITORA FERREIRA MP/RJ_EXERCÍCIOS 01

Ficha prática nº 7. SGBD Microsoft Access e SQL Server

18/04/2006 Micropagamento F2b Web Services Web rev 00

4.1. UML Diagramas de casos de uso

Criação de um Web Services em.net

---- ECOpro Manual de implementação

Estrutura de ensino/aprendizagem da Unidade Curricular Programação na Internet (PI)

Bases de Dados. Lab 1: Introdução ao ambiente

Criação de um Web Services em.net

Manual do Utilizador

Vodafone ADSL Station Manual de Utilizador. Viva o momento

A interface do Microsoft Visual Studio 2005

Extracto on Line Aplicação Local Guia do Administrador

Módulo de Administração de Utilizadores

Comunicação documentos de transporte AT via Webservice Singest Sistema Integrado de Gestão Cambragest Serviços de Gestão e Software

ADSE DIRETA MANUAL DE UTILIZAÇÃO PARA PRESTADORES DA REDE DA ADSE

Referencial do Módulo B

Plataforma. Manual de Utilização Acesso ao Procedimento Fornecedor. Electrónica BizGov

ZS Rest. Manual Profissional. Instalação do Software. v2011

ENHANCED SERVER FAULT- TOLERANCE FOR IMPROVED USER EXPERIENCE. André Esteves nº3412 David Monteiro

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo

Lista de Erros Discador Dial-Up

1- ASP.NET - HTML Server Controls

Configurar ligação VPN a rede do CIIMAR 2010

Módulo e-rede OpenCart v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Construindo uma aplicação Web completa utilizando ASP.Net 2.0, Visual Studio 2005 e IIS 7.0 ( Parte 1)

MANUAL DE UTILIZADOR FORENSIC SCIENCE LAB

Data de Aplicação. Instalação e Configuração do IIS Internet Information Services

SugarCRM, Integração com Produtos IPBrick iportalmais

Microsoft Access Para conhecermos o Access, vamos construir uma BD e apresentar os conceitos necessários a cada momento

Quick Reference. Configuração do acesso Wireless para a Rede da Escola

Engenharia de Software. Enunciado da Primeira Parte do Projecto

Configuração da rede sem fios Wireless e-u (Via SECURE W2)

Configurando o DDNS Management System

Módulo e-rede VirtueMart v1.0. Manual de. Instalação do Módulo. estamos todos ligados

ACOMPANHAMENTO DE EMPREENDIMENTOS GERADORES DE ENERGIA AEGE

Gescom isales. Aplicação Mobile Profissional para Vendedores

Guia de Utilização. Acesso Universal

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

Acronis Servidor de Licença. Manual do Utilizador

Transcrição:

Forms Authentication em ASP.NET Em muitos sites web é necessário restringir selectivamente o acesso a determinadas áreas, ou páginas, enquanto para outras páginas pode permitir-se acesso livre. ASP.NET possui uma funcionalidade, designada Forms Authentication, que simplifica e automatiza muitas tarefas de validação. Em ASP.NET as funcionalidades de Forms Authentication são tratadas na classe FormsAuthentication, através de métodos estáticos. Na segurança de um sistema intervêm 2 conceitos: Autenticação e Autorização. Autenticação é o processo pelo qual se obtém a identidade do utilizador. Como a Web pode ser usada por qualquer utilizador anónimo, a identidade do utilizador é normalmente obtida pedindo username e password. Autorização consiste em permitir ou negar o acesso a um determinado recurso. Ocorre depois da autenticação, e usa informação obtida durante o processo de autenticação. Na terminologia usada em.net a autenticação é implementada através de Providers. Providers são classes que contêm métodos estáticos que possibilitam a autenticação de Clientes. Uma aplicação Asp.Net pode ser configurada para usar um de entre 4 modos diferentes para Autenticação: Forms Authentication Windows Authentication Passport Authentication None Autenticação Baseada em Formulários (Forms-Based Authentication) O método de autenticação mais usado para tornar seguras Aplicações Web ASP.NET é a autenticação baseada em formulários (Forms Authentication). Modo de funcionamento da autenticação baseada em formulários Quando um utilizador pede uma página Web protegida pela autenticação baseada em formulários ocorrem os seguintes eventos: 1. O browser efectua o pedido de uma página.aspx protegida. 2. ASP.NET verifica se o pedido contém um cookie de autenticação válido. Se existe, significa que as credenciais do utilizador já foram verificadas. Então ASP.NET efectua o teste de autorização, comparando as credenciais contidas no cookie de autorização recebido no pedido com as regras de autorização existentes no ficheiro web.config. Se o teste sucede o acesso à página segura é permitido.

3. Se o pedido não contém um cookie válido, ASP.NET redirige o pedido para uma página de login (indicada no ficheiro de configuração da aplicação), onde são pedidas as credenciais do utilizador, normalmente username e password. 4. O código da aplicação na página de login verifica a autenticidade das credenciais. Se autentica, anexa ao pedido um cookie com as credenciais. 5. Se a autenticação falha, o pedido é retornado com uma mensagem informando acesso negado. 6. Se a autenticação sucede, ASP.NET verifica a autorização. Se autorizado permite o acesso à página segura pedida originalmente. Se não autorizado redirige o pedido para uma outra página informando a não autorização ou simplesmente retorna com uma mensagem de acesso negado. Com Forms Authentication é necessário criar um formulário para pedir as credenciais do utilizador (username e password). Se as credenciais são validadas com sucesso, asp.net cria um Cookie que é automaticamente verificado em cada pedido efectuado ao servidor. Para configurar o processo de segurança de uma aplicação Web, coloca-se no ficheiro web.config localizado no directório raiz da aplicação, o elemento authentication com o atributo mode= "[Windows/Forms/Passport/None]" Ficheiro web.config: <configuration> <authentication mode= "[Windows/Forms/Passport/None]"> </authentication> </configuration> Autorização (Protecção de Recursos) Para proteger todos os recursos, de utilizadores não autenticados, e redirigir o utilizador para uma página de Login (usando redirecção do lado do cliente) acrescentam-se os seguintes elementos no ficheiro web.config <?xml version="1.0" encoding="utf-8"?> <configuration> <authentication mode="forms"> <forms loginurl="login.aspx"/> </authentication> </configuration> Para cada pedido de um recurso, por exemplo da página Admin.aspx, a aplicação verifica se o pedido tem o cookie de autorização. Se o cookie não está presente no pedido, o utilizador é redirigido para a página de Login com uma QueryString

indicando que após autenticação deve voltar para a página pedida inicialmente, neste caso Admin.aspx. A redirecção para a página de Login é efectuada com a instrução seguinte: Response.Redirect( Login.aspx?ReturnUrl=Admin.aspx ); Na página de Login, se a autenticação sucede, para criar o cookie de autenticação e redireccionar o utilizador para o recurso inicialmente pedido é necessário colocar o seguinte código: FormsAuthentication.RedirectFromLoginPage(nome, false); O cookie de autenticação é criado pelo método RedirectFromLoginPage(). Este método, além de criar o cookie, redirige o utilizador para o recurso pedido inicialmente, baseado no valor do parâmetro ReturnUrl da QueryString, ou caso o valor do parâmetro seja null, redirige para a página Default.aspx. O uso desta classe FormsAuthentication e outras realtivas a segurança obriga a referenciar o namespace System.Web.Security; using System.Web.Security; Uma aplicação web pode ter múltiplos ficheiros web.config, colocados em diferentes directórios, para proteger os recursos existentes no respectivo directório. Significa negar o acesso a todos os utilizadores não autenticados. URL Authorization Para estabelecermos permissões para um directório específico criámos um ficheiro web.config. Para indicar que apenas certas páginas específicas são seguras, deve criar-se para cada página segura da aplicação Web um elemento <location> contendo um elemento o qual contém um elemento : <location path= carrinhocompras.aspx > </location> O valor do atributo path do elemento location pode ser um formulário asp.net ou um directório. Se é um directório também todos os seus subdirectórios ficam seguros. Se se pretende segurar múltiplas páginas Web ou directórios, deve usar-se múltiplos seções location.

A secção contém elementos <allow> e <deny> para permitir o acesso ou negar acesso dos utilizadores a páginas. Há dois nomes de utilizadores especiais, * e?, com os seguintes significados: * = qualquer utilizador (ou todos os utilizadores)? = utilizador anónimo (ou utilizador não autenticado). Controlo do acesso de clientes de aplicações web a recursos URL No ficheiro web.config podemos permitir (allow) ou negar (deny) a permissão de aceder a um recurso URL (ficheiro ou directório) para um utilizador ou grupos de utilizadores (roles). Múltiplos utilizadores ou roles podem ser especificados num único elemento colocando uma lista separada por vírgulas. Para verificar um dado acesso, primeiro são usadas as regras de autorização URL do próprio directório, em seguida as do directório pai, continuando a subir na hierarquia, até encontrar uma regra aplicável ao utilizador corrente. Se encontra uma regra aplicável ao utilizador corrente, o acesso é permitido ou negado de acordo com a regra encontrada. Se não encontra nenhuma regra aplicável ao utilizador corrente, o valor por omissão na configuração para toda a máquina especificada no ficheiro machine.config é permissão para todos os utilizadores. Depois de especificar o modo de autenticação, é necessário indicar que toda a aplicação Web necessita de autorização, ou que páginas são seguras e portanto necessitam de autorização. Para indicar que toda a aplicação Web necessita de autorização Exemplo 1: <allow users="joao, maria" /> <allow roles="administradores" /> <deny users="*" /> Exemplo 2: <allow users= miguel /> <deny users= joao /> <deny users=? />

Significado: permissão para o utilizador miguel, não permissão para o utilizador joao e não permissão todos os utilizadores anónimos. Qualquer outro utilizador autenticado terá também permissão. Providers Serviços que necessitam de armazenamento persistente de dados (por exemplo em bases de dados, ficheiros XML, etc.) não comunicam directamente com a camada de acesso a dados, mas sim com um provider. Um Provider é um módulo de software que fornece um interface uniforme entre um serviço e uma fonte de dados. Assim se pretendemos mudar a fonte de dados, código fora do provider não necessita ser modificado. Para ligar os serviços ao novo provider basta apenas uma alteração na configuração, realizada declarativamente no web.config. A ideia é a seguinte: em vez de realizar certas acções directamente do código no serviço, como por exemplo criar um utilizador na base de dados, delega-se a responsabilidade dessa acção num componente separado. Deste modo, facilmente se substitui o componente por outro para realizar a mesma função. Em ASP.NET, o provider por omissão é a base de dados SQL Server. Assim a execução do método Membership.CreateUser() numa página aspx resulta na inserção de um registo na base de dados SQL Server. O registo não é criado directamente pelo método CreateUser da classe Membership, mas por outro método semelhante do provider configurado. O modelo de provider permite facilmente reconfigurar a aplicação para usar um provider diferente, por exemplo criar o utilizador num ficheiro XML, ou numa base de dados Microsoft Access.