Saltar para o conteúdo
Aplicações Informáticas B · 12.º Ano · Desenvolvimento de Aplicações e Web · 2o Periodo

Autenticação e Autorização em Aplicações Web

Os alunos implementam mecanismos de autenticação e autorização para controlar o acesso de utilizadores a recursos da aplicação.

Aprendizagens EssenciaisDGE: Secundário - Segurança e PrivacidadeDGE: Secundário - Criação de Conteúdos Digitais

Sobre este tópico

A autenticação e autorização em aplicações web protegem recursos sensíveis ao verificar a identidade dos utilizadores e controlar os seus privilégios de acesso. A autenticação confirma quem é o utilizador, através de mecanismos como palavras-passe hashadas, tokens JWT ou autenticação multifator. A autorização define o que esse utilizador pode fazer, como ler, escrever ou eliminar dados, com base em papéis ou regras específicas. No 12.º ano, os alunos implementam estes sistemas em aplicações reais, respondendo a questões como a garantia de acesso autorizado e a análise de riscos em autenticações fracas.

Este tópico integra-se no Currículo Nacional, alinhado com os standards de Segurança e Privacidade e Criação de Conteúdos Digitais da DGE para o secundário. Os alunos desenvolvem competências em pensamento computacional avançado, avaliando vulnerabilidades como injeções SQL ou sessões mal geridas, e promovendo práticas seguras em desenvolvimento web.

A aprendizagem ativa beneficia particularmente este tópico, pois permite aos alunos codificar e testar mecanismos de autenticação em projetos colaborativos, simular ataques éticos e debater falhas reais. Estas abordagens tornam conceitos abstractos de segurança tangíveis, fomentam a resolução de problemas em equipa e preparam para cenários profissionais autênticos.

Questões-Chave

  1. Como podemos garantir que apenas utilizadores autorizados acedem a informações sensíveis?
  2. Analise a diferença entre autenticação e autorização e a sua importância na segurança.
  3. Avalie os riscos de segurança associados a implementações de autenticação fracas.

Objetivos de Aprendizagem

  • Implementar mecanismos de autenticação robustos, como hashing de passwords e tokens JWT, para proteger o acesso a uma aplicação web.
  • Comparar e contrastar os modelos de autorização baseados em papéis (RBAC) e baseados em atributos (ABAC) no contexto de aplicações web.
  • Avaliar a segurança de um sistema de autenticação e autorização existente, identificando potenciais vulnerabilidades como ataques de força bruta ou escalada de privilégios.
  • Desenvolver um protótipo de sistema de gestão de utilizadores que inclua registo, login seguro e atribuição de permissões específicas.
  • Explicar a importância da gestão segura de sessões e os riscos associados a falhas nesse processo.

Antes de Começar

Fundamentos de Programação Web (HTML, CSS, JavaScript)

Porquê: Os alunos precisam de uma base sólida no desenvolvimento front-end e back-end para poderem implementar os mecanismos de autenticação e autorização.

Bases de Dados Relacionais e SQL

Porquê: A compreensão de como armazenar e consultar dados é essencial para gerir informações de utilizadores e permissões.

Segurança Básica em Aplicações

Porquê: Conhecimentos sobre vulnerabilidades comuns como injeção de SQL ou XSS são importantes para entender a necessidade de autenticação e autorização robustas.

Vocabulário-Chave

AutenticaçãoProcesso de verificar a identidade de um utilizador, confirmando que ele é quem diz ser. Exemplos incluem login com nome de utilizador e palavra-passe, ou autenticação biométrica.
AutorizaçãoProcesso de determinar que ações um utilizador autenticado pode realizar dentro de uma aplicação. Define os níveis de acesso a recursos ou funcionalidades.
Hashing de PasswordProcesso de transformar uma palavra-passe numa sequência de caracteres de tamanho fixo (hash) para a armazenar de forma segura. Torna difícil a recuperação da palavra-passe original mesmo que a base de dados seja comprometida.
Token JWT (JSON Web Token)Um padrão compacto e autónomo para representar de forma segura informações entre duas partes como um objeto JSON. Frequentemente usado para autenticação e autorização em APIs web.
RBAC (Role-Based Access Control)Um modelo de controlo de acesso onde as permissões são atribuídas a funções (papéis), e os utilizadores recebem esses papéis. Simplifica a gestão de permissões em sistemas com muitos utilizadores.

Atenção a estes erros comuns

Erro comumAutenticação e autorização são o mesmo processo.

O que ensinar em alternativa

A autenticação verifica a identidade, enquanto a autorização controla ações permitidas. Atividades de role-playing ajudam os alunos a distinguir, simulando cenários onde um utilizador autenticado é bloqueado por falta de autorização, promovendo discussões que clarificam as diferenças.

Erro comumArmazenar passwords em texto plano é aceitável para simplicidade.

O que ensinar em alternativa

Passwords devem ser sempre hashados com sal para resistir a fugas de dados. Simulações de breaches em atividades práticas mostram impactos reais, incentivando os alunos a implementarem hashing e a compararem antes/depois em testes colaborativos.

Erro comumSessões não expiram, garantindo acesso permanente.

O que ensinar em alternativa

Sessões devem ter timeouts para segurança. Projetos de codificação ativa permitem testar expirações, onde alunos observam falhas em acessos prolongados e ajustam timers, reforçando a importância através de iterações em grupo.

Ideias de aprendizagem ativa

Ver todas as atividades

Ligações ao Mundo Real

  • Bancos como o Millennium BCP utilizam sistemas avançados de autenticação (como autenticação de dois fatores) e autorização para proteger o acesso às contas dos seus clientes e as transações financeiras.
  • Plataformas de comércio eletrónico como a Amazon implementam mecanismos robustos para garantir que apenas o utilizador correto pode aceder ao seu histórico de compras, dados de pagamento e gerir as suas encomendas.
  • Sistemas de gestão de conteúdos (CMS) como o WordPress permitem aos administradores definir diferentes níveis de acesso para autores, editores e outros utilizadores, garantindo que cada um só pode modificar o conteúdo para o qual tem permissão.

Ideias de Avaliação

Bilhete de Saída

Peça aos alunos para escreverem num pequeno papel: 1) Uma frase que explique a diferença fundamental entre autenticação e autorização. 2) Um exemplo de uma aplicação onde a autorização baseada em papéis é crucial e qual seria um papel comum nessa aplicação.

Verificação Rápida

Durante a aula, apresente um cenário: 'Um utilizador tenta aceder a uma página de administração que requer permissões de 'editor'. O sistema verifica a sua identidade (login) e depois verifica se o seu papel é 'editor'. Qual destes passos é autenticação e qual é autorização?'. Recolha respostas rápidas para avaliar a compreensão imediata.

Avaliação entre Pares

Em pares, os alunos analisam um pequeno trecho de código (fornecido pelo professor) que implementa um sistema de login básico. Devem identificar: 1) Onde ocorre a autenticação. 2) Que tipo de vulnerabilidade de segurança poderia existir se o código fosse mais complexo (ex: falta de hashing). Cada par apresenta as suas descobertas à turma.

Perguntas frequentes

Qual a diferença entre autenticação e autorização em apps web?
A autenticação confirma a identidade do utilizador com credenciais ou tokens, enquanto a autorização define permissões específicas como ler ou editar. Implementar ambos previne acessos indevidos. No currículo, os alunos codificam exemplos para ver como falhas em um afetam a segurança global da aplicação.
Como implementar autenticação segura em aplicações web?
Use hashing de passwords com bcrypt, tokens JWT para sessões stateless e OAuth para terceiros. Evite texto plano e valide entradas. Atividades práticas guiam os alunos a integrar estas em frameworks como Express, testando contra vulnerabilidades comuns para resultados robustos.
Quais os riscos de autenticação fraca?
Riscos incluem roubo de contas por brute-force, phishing ou fugas de dados, levando a breaches massivos. Avalie com simulações: sem hashing, bases de dados expostas permitem ataques offline. Ensinar mitigações como MFA constrói apps resilientes alinhadas aos standards DGE.
Como a aprendizagem ativa ajuda no ensino de autenticação e autorização?
Abordagens ativas como codificação em pares e simulações de ataques tornam conceitos abstractos práticos: alunos implementam, testam falhas e iteram soluções colaborativamente. Isto desenvolve pensamento crítico, retenção superior a aulas expositivas e preparação para certificações reais, fomentando confiança em segurança web.