-
Descrição do motivo que explica a importância do plano: Atualmente, a autenticação é um componente crucial em qualquer sistema web e mobile. O OAuth2 é um protocolo amplamente utilizado para autenticação e autorização em sistemas distribuídos, permitindo que usuários concedam acesso a suas informações de maneira segura. Compreender como implementar autenticação com OAuth2 é fundamental para desenvolvedores de software que trabalham com sistemas distribuídos e querem garantir a segurança dos usuários. Portanto, este plano de estudos foi criado para ajudar desenvolvedores a aprenderem a implementar autenticação com OAuth2 em seus sistemas.
-
Objetivo de aprendizagem: Ao final deste plano, o estudante será capaz de projetar e implementar um sistema web ou mobile que utilize OAuth2 como meio de autenticação, demonstrando habilidades no nível 3 da taxonomia de Bloom.
-
Pré-requisitos:
- Conhecimento básico de programação web e/ou mobile
- Conhecimento em linguagem de marcação HTML, CSS e linguagem de programação Javascript
- Familiaridade com conceitos de autenticação e autorização em sistemas distribuídos
-
Lista de objetivos de aprendizagem conectados com o nível 3 da taxonomia de bloom: a) Analisar e compreender as especificações do protocolo OAuth2 b) Projetar uma aplicação que utiliza OAuth2 como meio de autenticação c) Implementar um servidor de autenticação OAuth2 d) Implementar um cliente OAuth2 em um sistema web ou mobile e) Configurar uma aplicação para se comunicar com um servidor de autenticação OAuth2
-
Lista de temas e referências: Tema 1: Introdução ao OAuth2
- Livro de referência: OAuth 2.0: Getting Started in Web-API Security (Ryan Boyd, 2016)
- Objetivo de aprendizagem: Compreender os conceitos fundamentais do protocolo OAuth2, incluindo os principais atores envolvidos e os fluxos de autenticação e autorização.
Tema 2: Especificações do OAuth2
- Livro de referência: OAuth 2.0: The Definitive Guide (Aaron Parecki, 2018)
- Objetivo de aprendizagem: Analisar as especificações do protocolo OAuth2, incluindo as diferentes opções de fluxos e escopos de autenticação e autorização.
Tema 3: Projetando uma aplicação OAuth2
- Livro de referência: OAuth 2.0 Identity and Access Management Patterns (Adrian Spinei, 2019)
- Objetivo de aprendizagem: Projetar uma aplicação que utilize OAuth2 como meio de autenticação, considerando aspectos como escopos de autorização, segurança e usabilidade.
Tema 4: Implementação do servidor de autenticação OAuth2
- Livro de referência: OAuth 2.0 Server Implementation: The Complete Guide (Phil Sturgeon, 2018)
- Objetivo de aprendizagem: Implementar um servidor de autenticação OAuth2 utilizando uma biblioteca como o OAuth2orize ou o Spring Security OAuth2.
Tema 5: Implementação do cliente OAuth2
- Livro de referência: OAuth2 in Action (Justin Richer, 2017)
- Objetivo de aprendizagem: Implementar um
continua
cliente OAuth2 em um sistema web ou mobile, utilizando bibliotecas como o Satellizer ou o Okta Sign-In Widget.
Tema 6: Configuração de uma aplicação para se comunicar com um servidor de autenticação OAuth2
- Livro de referência: OAuth 2.0 Cookbook (Adolfo Eloy Nascimento, 2020)
- Objetivo de aprendizagem: Configurar uma aplicação para se comunicar com um servidor de autenticação OAuth2, incluindo a obtenção de tokens de acesso e o uso de escopos de autorização.
-
Lista de palavras-chave: OAuth2, autenticação, autorização, protocolo, fluxos, escopos, servidor, cliente, tokens, segurança, usabilidade, web, mobile.
-
Exercícios: a) Implementar um servidor de autenticação OAuth2 utilizando o framework Spring Security OAuth2 e configurar uma aplicação web para se comunicar com ele. b) Projetar e implementar um aplicativo mobile que utiliza OAuth2 para autenticação e autorização, integrando com um provedor de identidade externo, como o Google ou o Facebook. c) Configurar uma aplicação Angular para se comunicar com uma API RESTful protegida por OAuth2. d) Implementar um fluxo de autenticação e autorização com OAuth2 utilizando o protocolo de concessão implícita, em um aplicativo web React. e) Integrar um cliente OAuth2 em uma aplicação Python Flask que se comunica com uma API RESTful protegida por OAuth2.