Curso OpenID Connect in Action
20 horasVisão Geral
Curso OpenID Connect in Action. Este curso prático e aprofundado foi desenhado para desenvolvedores, arquitetos de segurança, engenheiros de backend e profissionais de DevOps que precisam entender, implementar e gerenciar a autenticação e federação de identidades usando OpenID Connect (OIDC) em suas aplicações e ecossistemas distribuídos. Em um mundo onde a segurança e a experiência do usuário são primordiais, o OIDC se tornou o padrão ouro para autenticação. Do ponto de vista técnico, você mergulhará nos fluxos do OIDC (Authorization Code Flow, Implicit Flow, Hybrid Flow), entenderá a estrutura dos ID Tokens (JWT) e como utilizá-los de forma segura. Abordaremos como integrar aplicações como clientes OIDC e como configurar um Provedor de Identidade (IdP). O curso cobrirá cenários práticos de integração com frameworks populares (como Spring Security para Java e Keycloak como IdP), boas práticas de segurança (PKCE, validação de tokens), tratamento de sessões e single sign-on (SSO), e aspectos de logout. O foco será em aprender "fazendo", com exercícios práticos e exemplos de código que simulam ambientes de produção.
Curso OpenID Connect in Action, a implementação de uma estratégia de autenticação robusta e eficiente é fundamental para a segurança, a conformidade e a satisfação do cliente. O OpenID Connect oferece uma solução padronizada que simplifica o processo de login para os usuários (SSO), reduz a complexidade de desenvolvimento de segurança e aumenta a confiança na proteção de dados. Empresas que adotam o OIDC podem melhorar a experiência do usuário, reduzir os riscos de segurança, acelerar o tempo de lançamento de novos serviços e escalar sua infraestrutura de autenticação de forma eficiente. Profissionais que dominam o OpenID Connect são altamente valorizados no mercado, pois são essenciais para construir e manter sistemas seguros e escaláveis que atendam às demandas de segurança e usabilidade modernas.
Objetivo
Ao final do Curso OpenID Connect in Action, você será capaz de:
- Compreender os conceitos fundamentais de autenticação e federação de identidades.
- Entender a relação entre OAuth 2.0 e OpenID Connect.
- Dominar os diferentes fluxos do OIDC (Authorization Code Flow, Implicit Flow, Hybrid Flow) e suas aplicações.
- Interpretar e validar ID Tokens (JWTs) e Access Tokens.
- Configurar e integrar aplicações como clientes OIDC em diversos cenários (web apps, SPAs, mobile, APIs).
- Utilizar um Provedor de Identidade (IdP) como o Keycloak para gerenciar usuários e autenticação.
- Implementar boas práticas de segurança no OIDC, como PKCE (Proof Key for Code Exchange).
- Gerenciar sessões de usuário, single sign-on (SSO) e single logout (SLO).
- Diagnosticar e resolver problemas comuns em implementações OIDC.
Publico Alvo
- Desenvolvedores (Java, .NET, Node.js, Python): Que precisam implementar autenticação em suas aplicações.
- Arquitetos de Segurança: Para projetar e validar soluções de identidade baseadas em OIDC.
- Engenheiros de Backend: Que constroem APIs protegidas por OIDC.
- Profissionais de DevOps: Que gerenciam e operam provedores de identidade e aplicações integradas.
- Qualquer profissional interessado em aprofundar seus conhecimentos em autenticação moderna e federação de identidades.
Pre-Requisitos
- Conhecimento básico de HTTP e conceitos REST: Métodos, headers, códigos de status.
- Noções básicas de JSON e JWT (JSON Web Tokens): Estrutura e assinatura.
- Familiaridade com conceitos de autenticação e autorização: O que são, para que servem.
- (Desejável) Conhecimento básico de desenvolvimento web (qualquer linguagem/framework).
- (Desejável) Noções de Docker para o ambiente de laboratório.
Materiais
Inglês/Português/Lab PráticoConteúdo Programatico
Módulo 1: Fundamentos da Autenticação e Introdução ao OIDC (4 horas)
- 1.1. Autenticação e Autorização: Revisão de Conceitos:
- Identidade, Credenciais, Provedores de Identidade (IdP) e Provedores de Serviço (SP).
- Sessões, Cookies, Tokens.
- Single Sign-On (SSO): O problema a ser resolvido.
- 1.2. Evolução da Autenticação na Web:
- Autenticação Tradicional (baseada em sessão).
- OAuth 2.0: Delegação de Autorização (não é para autenticação!).
- Hands-on: Entender um fluxo OAuth 2.0 de delegação de acesso com Postman.
- 1.3. Introdução ao OpenID Connect (OIDC):
- OIDC como uma camada de autenticação sobre OAuth 2.0.
- Por que o OIDC é o padrão de fato para autenticação.
- Papéis no OIDC: End-User, Relying Party (Cliente), OpenID Provider (OP).
- 1.4. JSON Web Tokens (JWT) no OIDC:
- Estrutura de um JWT (Header, Payload, Signature).
- ID Token vs. Access Token: Diferenças e propósitos.
- Assinatura de JWTs (JWS) e Criptografia (JWE - conceitual).
- Hands-on: Decodificar JWTs online e identificar suas partes.
- Prática: Revisar conceitos de OAuth 2.0. Entender o papel do OIDC. Decodificar JWTs para visualizar claims (reivindicações).
Módulo 2: O OpenID Provider (OP) e a Configuração do Cliente (5 horas)
- 2.1. Configurando um OpenID Provider (IdP): Keycloak:
- Hands-on: Instalar e configurar o Keycloak via Docker Compose.
- Criar Realms, Usuários, Clientes (Clients) OIDC.
- Configurar Scopes, Roles e Mappers no Keycloak.
- 2.2. Descoberta do Provedor OIDC (Discovery Endpoint):
- O papel do
.well-known/openid-configuration
. - Informações de endpoints, capacidades e chaves públicas (JWKS URI).
- Hands-on: Acessar o Discovery Endpoint do Keycloak e analisar as informações.
- O papel do
- 2.3. Registrando um Cliente OIDC (Relying Party):
- Client ID, Client Secret.
redirect_uris
,post_logout_redirect_uris
.- Tipos de Resposta (
response_type
).
- 2.4. O Fluxo Authorization Code Flow (Código de Autorização):
- O fluxo mais seguro para aplicações web e SPA/Mobile com PKCE.
authorize
endpoint,token
endpoint,userinfo
endpoint.- Hands-on: Simular o Authorization Code Flow com Postman, observando os passos e os tokens gerados.
- Prática: Configurar um Keycloak localmente. Criar um cliente OIDC. Executar e entender o Authorization Code Flow manualmente via Postman.
Módulo 3: Implementando Clientes OIDC em Aplicações (5 horas)
- 3.1. Clientes OIDC para Aplicações Web Tradicionais (Spring Security como exemplo):
- Hands-on: Integrar uma aplicação Spring Boot como cliente OIDC usando
spring-boot-starter-oauth2-client
. - Configuração do
application.properties
. - Acessando o
Principal
autenticado e as claims do ID Token.
- Hands-on: Integrar uma aplicação Spring Boot como cliente OIDC usando
- 3.2. Clientes OIDC para Single Page Applications (SPAs) e Mobile:
- Desafios de segurança em SPAs (sem client secret).
- Proof Key for Code Exchange (PKCE): Como funciona e por que é essencial.
- Uso de bibliotecas OIDC (ex:
oidc-client-js
- conceitual). - Hands-on: Entender o fluxo de PKCE e como ele adiciona segurança.
- 3.3. Protegendo APIs REST com OIDC (Recursos Protegidos):
- Uso do Access Token para autorização.
- Validação do Access Token (introspecção vs. validação local de JWT).
- Configurando a validação de JWTs em um backend (ex: Spring Security Resource Server).
- Hands-on: Criar uma API protegida por OAuth2/OIDC e consumir o Access Token.
- Prática: Desenvolver uma aplicação Spring Boot que atua como cliente OIDC, autenticando usuários via Keycloak. Criar uma API que valida o Access Token.
Módulo 4: Gerenciamento de Sessões, Logout e Boas Práticas (4 horas)
- 4.1. Gerenciamento de Sessões e Single Sign-On (SSO):
- Sessões no lado do cliente (cookies, Local Storage).
- Sessões no lado do OP (Keycloak).
- Como o SSO é alcançado no OIDC.
- 4.2. Fluxos de Logout:
- Single Logout (SLO): Desafios e implementação (Front-Channel Logout, Back-Channel Logout).
id_token_hint
,post_logout_redirect_uri
.- Hands-on: Implementar um fluxo de logout em sua aplicação cliente.
- 4.3. Renovação de Tokens (Refresh Tokens):
- Propósito dos Refresh Tokens e como usá-los com segurança.
- Hands-on: Configurar a renovação de tokens no Keycloak e no cliente.
- 4.4. Boas Práticas e Considerações de Segurança:
- Validação de todos os campos do ID Token (
iss
,aud
,exp
,iat
,nonce
). - Cross-Site Request Forgery (CSRF) no contexto OIDC.
- Armazenamento seguro de client secrets e refresh tokens.
- Uso de HTTPS obrigatório.
- Considerações sobre
scope
eclaims
.
- Validação de todos os campos do ID Token (
- Prática: Implementar e testar o logout. Configurar a renovação de tokens. Discutir e aplicar as melhores práticas de segurança no projeto.
Módulo 5: Cenários Avançados e Troubleshooting (2 horas)
- 5.1. Fluxos Implicit e Hybrid (Quando Usar/Não Usar):
- Implicit Flow: Simplicidade vs. Riscos de Segurança (depreciado para a maioria dos casos).
- Hybrid Flow: Combinação de Authorization Code e Implicit.
- Hands-on: Entender os fluxos e por que o Authorization Code + PKCE é preferível.
- 5.2. OIDC e APIs Baseadas em Funções/Roles:
- Como mapear roles e permissões do IdP para a aplicação cliente.
- Uso do
Userinfo Endpoint
para obter claims adicionais.
- 5.3. Troubleshooting Comum em OIDC:
- Erros de
redirect_uri
inválido. - Problemas de validação de token (
signature verification failed
,expired token
). - Erros de scope e permissões.
- Erros de
- 5.4. Integração com Outros Provedores (Google, Auth0, Azure AD - conceitual):
- Similitudes e diferenças na configuração OIDC.
- 5.5. Próximos Passos na Segurança de Identidades:
- Autenticação Multifator (MFA).
- Federação de identidades com outros IdPs.
- Graph API e gerenciamento de usuários.
- Prática: Realizar exercícios de troubleshooting. Discutir cenários complexos e as melhores soluções.