Skip to content
Aplicações Informáticas B · 12.º Ano

Ideias de aprendizagem ativa

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

Este tópico envolve conceitos abstratos que se tornam claros quando os alunos interagem com sistemas reais. Ao implementarem autenticação e autorização em aplicações práticas, os estudantes compreendem a importância de cada camada de segurança, uma vez que os erros têm consequências imediatas e visíveis no funcionamento das aplicações.

Aprendizagens EssenciaisDGE: Secundário - Segurança e PrivacidadeDGE: Secundário - Criação de Conteúdos Digitais
30–60 minPares → Turma inteira4 atividades

Atividade 01

Codificação em Pares: Login Simples com Sessões

Os pares criam uma aplicação web básica com Node.js ou Flask que usa autenticação por palavra-passe hashada e sessões para login. Testam acessos válidos e inválidos, registando logs de tentativas falhadas. Apresentam o código à turma para feedback.

Como podemos garantir que apenas utilizadores autorizados acedem a informações sensíveis?

Sugestão de FacilitaçãoDurante a Codificação em Pares, peça aos alunos para alternarem entre os papéis de 'desenvolvedor' e 'hacker' em intervalos de 10 minutos, incentivando-os a pensar criticamente sobre como quebrariam o sistema que estão a construir.

O que observarPeç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.

AnalisarAvaliarCriarTomada de DecisãoAutogestãoCompetências Relacionais
Gerar Aula Completa

Atividade 02

Aprendizagem Baseada em Problemas50 min · Pequenos grupos

Simulação de Ataques: Grupos de Vulnerabilidades

Divida a turma em grupos para simular ataques como brute-force ou man-in-the-middle em apps mockup. Cada grupo implementa defesas como CAPTCHA ou HTTPS, testa contra outros grupos e relata eficácia. Discuta resultados em plenário.

Analise a diferença entre autenticação e autorização e a sua importância na segurança.

Sugestão de FacilitaçãoNa Simulação de Ataques, atribua vulnerabilidades específicas a cada grupo e peça-lhes para apresentarem a sua estratégia de exploração num formato de 'conferência de segurança', promovendo a discussão entre pares.

O que observarDurante 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.

AnalisarAvaliarCriarTomada de DecisãoAutogestãoCompetências Relacionais
Gerar Aula Completa

Atividade 03

Aprendizagem Baseada em Problemas60 min · Pequenos grupos

Projeto Colaborativo: App com RBAC

Em pequenos grupos, desenvolvam uma app web com Role-Based Access Control, atribuindo papéis como admin e user. Implementem rotas protegidas, testem acessos e avaliem riscos. Partilhem repositórios GitHub para revisão coletiva.

Avalie os riscos de segurança associados a implementações de autenticação fracas.

Sugestão de FacilitaçãoNo Projeto Colaborativo, defina marcos claros para a implementação de RBAC, como 'criação do modelo de papéis' e 'teste de permissões', para manter o projeto alinhado com os objetivos da atividade.

O que observarEm 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.

AnalisarAvaliarCriarTomada de DecisãoAutogestãoCompetências Relacionais
Gerar Aula Completa

Atividade 04

Análise Individual: Auditoria de Código

Cada aluno analisa código de autenticação fornecido, identifica fraquezas como passwords em claro e propõe correções com JWT. Submete relatório com testes unitários demonstrando melhorias.

Como podemos garantir que apenas utilizadores autorizados acedem a informações sensíveis?

Sugestão de FacilitaçãoNa Análise Individual, forneça código com erros intencionais e peça aos alunos para corrigirem as vulnerabilidades antes de avançarem para a discussão em grupo, garantindo que todos compreendem os conceitos.

O que observarPeç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.

AnalisarAvaliarCriarTomada de DecisãoAutogestãoCompetências Relacionais
Gerar Aula Completa

Algumas notas sobre lecionar esta unidade

Comece por demonstrar um sistema simples de login com vulnerabilidades evidentes, como passwords em texto plano, para que os alunos identifiquem os problemas logo no início. Evite explicar demasiados conceitos teóricos de uma vez; em vez disso, introduza cada tópico à medida que os alunos o necessitam durante as atividades práticas. Pesquisas mostram que a aprendizagem baseada em projetos, especialmente em segurança informática, melhora a retenção quando os alunos conseguem visualizar as consequências dos seus erros.

No final, os alunos demonstram segurança ao implementar sistemas de autenticação robustos e autorização baseada em papéis. Devem ser capazes de explicar o processo completo, identificar vulnerabilidades comuns e justificar as suas escolhas técnicas com base em critérios de segurança.


Atenção a estes erros comuns

  • Durante a Codificação em Pares, watch for students who confuse autenticação com autorização ao implementarem o sistema de login.

    Peça aos pares para documentarem cada passo do processo num quadro branco: primeiro, identifiquem onde a identidade do utilizador é verificada (autenticação) e depois onde as permissões são verificadas (autorização), usando exemplos concretos do código que estão a escrever.

  • Durante a Simulação de Ataques, watch for students who assume que armazenar passwords em texto plano é suficiente para aplicações de pequena escala.

    Peça aos grupos para simularem uma fuga de dados com passwords em texto plano e compararem o impacto com um sistema onde as passwords estão hashadas, usando ferramentas como Hashcat para demonstrar a diferença na prática.

  • Durante o Projeto Colaborativo, watch for students who implementam sessões sem expiração, acreditando que o acesso permanente é seguro.

    Defina um timer visível durante o desenvolvimento e peça aos alunos para testarem o que acontece quando a sessão expira, ajustando o tempo de inatividade com base nos resultados observados.


Metodologias usadas neste resumo