Reino OIDC

Aprenda OAuth 2.0 e OpenID Connect através de uma Aventura

Educacional Interativo OAuth 2.0 OIDC

Bem-vindo ao Reino OIDC!

Uma terra mágica onde a autenticação e autorização ganham vida através de personagens, aventuras e magia. Aqui, conceitos complexos de OAuth 2.0 e OpenID Connect se transformam em uma jornada épica de aprendizado!

Projeto Educativo
Gamificação de Conceitos Técnicos

A História do Reino

Era Uma Vez...

Há muito tempo, em uma terra distante, existia o Reino OIDC, onde todos os cidadãos precisavam se identificar para acessar diferentes locais e serviços.

🏰 O Problema do Reino

No início, cada estabelecimento tinha seu próprio sistema de identificação. Os cidadãos precisavam carregar dezenas de cartões diferentes - um para a biblioteca, outro para o banco, outro para o hospital...

Isso não era muito prático, não é mesmo?

✨ A Solução Mágica

Então surgiu a Grande Aliança OIDC - um sistema onde você se identifica uma vez com o Guardião das Identidades e ele garante sua entrada em todos os estabelecimentos aliados!

Paralelo Técnico

O Reino OIDC é uma metáfora completa para o funcionamento real de sistemas de autenticação modernos:

🏰 Reino OIDC
Ecosystem OAuth/OIDC
🛡️ Guardião das Identidades
Authorization Server (AS)
👤 Cidadão/Aprendiz
Resource Owner (User)
🏢 Estabelecimentos
Resource Servers
📜 Pergaminho de Acesso
Access Token
🎭 Medalhão de Identidade
ID Token (JWT)

Personagens do Reino

Guardião das Identidades

Authorization Server

Poder: Verificar identidades e conceder acessos

Personalidade: Rigoroso mas justo, nunca erra uma identificação

Papel Técnico: Implementa OAuth 2.0/OIDC flows, gera tokens JWT, mantém registro de clients

Autenticação Autorização JWT Tokens

O Aprendiz (Você!)

Resource Owner / End User

Jornada: Aprender os segredos da autenticação

Objetivo: Dominar os flows OAuth e OIDC

Papel Técnico: Usuário final que autoriza acesso a seus recursos através de consent screens

Curiosidade Aprendizado Experimentação

Comerciantes Aliados

Client Applications

Serviços: Biblioteca, Banco, Hospital, Loja

Necessidade: Verificar identidade sem gerenciar senhas

Papel Técnico: Aplicações que confiam no Authorization Server para autenticar usuários

Confiança Integração Especialização

Guardiões dos Tesouros

Resource Servers

Responsabilidade: Proteger dados e recursos valiosos

Método: Só aceitam pergaminhos válidos (tokens)

Papel Técnico: APIs que validam tokens e servem recursos protegidos

Validação Proteção Recursos

A Jornada do Aprendiz

Siga os passos do nosso herói através dos diferentes flows OAuth/OIDC:

1

Chegada ao Reino

Cenário: O Aprendiz chega ao Reino e precisa se registrar

Conceito: Client Registration - como aplicações se registram no AS

Implementação:
// Client Registration
{
  "client_name": "Biblioteca Real",
  "redirect_uris": ["https://biblioteca.reino.com/callback"],
  "grant_types": ["authorization_code"],
  "scope": "openid profile email"
}
2

Primeira Identificação

Cenário: Aprendiz se apresenta ao Guardião das Identidades

Conceito: Authorization Code Flow - fluxo mais seguro

Authorization Request:
GET /auth?
  response_type=code&
  client_id=biblioteca_real&
  redirect_uri=https://biblioteca.reino.com/callback&
  scope=openid+profile&
  state=xyz123
3

Recebendo o Pergaminho

Cenário: Guardião entrega pergaminho mágico após verificação

Conceito: Token Exchange - trocar authorization code por tokens

Token Response:
{
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGc...",
  "id_token": "eyJ0eXAiOiJKV1QiLCJhbGc...",
  "refresh_token": "8xLOxBtZp8",
  "expires_in": 3600,
  "token_type": "Bearer"
}
4

Visitando Estabelecimentos

Cenário: Usando pergaminho para acessar diferentes serviços

Conceito: Resource Access - usar tokens para acessar APIs protegidas

API Request:
GET /api/livros HTTP/1.1
Host: biblioteca.reino.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGc...
5

Renovando Poderes

Cenário: Pergaminho expira, precisa de renovação automática

Conceito: Refresh Token Flow - renovar acesso sem re-autenticar

Refresh Request:
POST /token
grant_type=refresh_token&
refresh_token=8xLOxBtZp8&
client_id=biblioteca_real

Implementação no Mundo Real

O Reino OIDC não é apenas uma história - é um projeto funcional que implementa todos os conceitos!

Authorization Server

Implementado com Flask e bibliotecas OAuth especializadas:

# app/auth_server.py
from flask import Flask
from authlib.integrations.flask_oauth2 import AuthorizationServer
from authlib.oauth2.rfc6749.grants import AuthorizationCodeGrant

app = Flask(__name__)
authorization = AuthorizationServer(app)

@app.route('/authorize', methods=['GET', 'POST'])
def authorize():
    # Implementa authorization endpoint
    return authorization.create_authorization_response()

@app.route('/token', methods=['POST'])  
def issue_token():
    # Implementa token endpoint
    return authorization.create_token_response()

Client Application

Biblioteca Real implementada como cliente OAuth:

# biblioteca/app.py
from authlib.integrations.flask_client import OAuth

oauth = OAuth(app)
reino_oidc = oauth.register(
    name='reino',
    client_id='biblioteca_real',
    client_secret='secret_super_seguro',
    server_metadata_url='https://reino.oidc.com/.well-known',
    client_kwargs={'scope': 'openid profile email'}
)

@app.route('/login')
def login():
    redirect_uri = url_for('callback', _external=True)
    return reino_oidc.authorize_redirect(redirect_uri)
Demo Interativa

Acesse https://reino.caracore.com.br para experimentar todos os flows em um ambiente controlado e educativo!

Cenários de Aprendizado

Iniciante

Caminho Feliz

Aprenda o fluxo básico OAuth sem complicações. Perfeito para entender os conceitos fundamentais.

  • Authorization Code Flow
  • Redirect URIs
  • Access Tokens básicos
  • User Info endpoint
⏱️ 30-45 minutos

Intermediário

Desafios do Reino

Enfrente situações mais complexas com múltiplos clients e scopes diferentes.

  • Multiple Grant Types
  • Scope Management
  • Refresh Tokens
  • JWT Claims customizados
⏱️ 1-2 horas

Avançado

Mestre do Reino

Domine conceitos avançados como PKCE, device flow e federação de identidades.

  • PKCE Extension
  • Device Authorization Grant
  • Identity Federation
  • Security Best Practices
⏱️ 2-3 horas

Recursos Educativos

Material Didático

  • 📖 Guia Ilustrado: História completa com diagramas
  • 🎥 Vídeo Tutoriais: Flows animados passo a passo
  • 📝 Exercícios Práticos: Implementações guiadas
  • 🎯 Quizzes Interativos: Teste seu conhecimento
  • 🏆 Certificação: Comprove seu aprendizado

Código de Exemplo

  • 🐍 Python/Flask: Authorization Server completo
  • 🌐 JavaScript: Client SPA implementation
  • 📱 Mobile Examples: iOS e Android clients
  • 🔧 Postman Collection: Todos os endpoints testáveis
  • 🐳 Docker Setup: Ambiente completo em containers
Download do Reino

Todo o material está disponível no GitHub com licença MIT. Clone o repositório e comece sua jornada:

git clone https://github.com/cara-core/reino-oidc
cd reino-oidc
docker-compose up -d
# Acesse http://localhost:3000 para começar!

Casos de Uso Reais

Veja como os conceitos do Reino se aplicam em cenários reais:

Login Social

"Login com Google" usa exatamente o mesmo flow que o Reino OIDC - Authorization Code com PKCE.

SSO Empresarial

Funcionários acessam múltiplas aplicações internas com um único login - como os estabelecimentos do Reino.

APIs Mobile

Apps móveis usam refresh tokens para manter sessões ativas - como renovar pergaminhos no Reino.

Microserviços

Cada serviço valida tokens JWT independentemente - como os Guardiões dos Tesouros.

Laboratório Prático

Ambiente de Laboratório

Experimente implementar seu próprio Reino OIDC seguindo nosso tutorial passo a passo!

🏗️ Construindo o Reino

  1. Setup do Projeto
    mkdir meu-reino-oidc
    cd meu-reino-oidc
    python -m venv venv
    pip install flask authlib
  2. Authorization Server Mínimo
  3. Client de Teste
  4. Resource Server
  5. Frontend Interativo

🧪 Experimentos

  • Flow Variations: Teste diferentes grant types
  • Security Testing: Tente ataques comuns
  • Performance: Meça latência de validação
  • Customization: Adicione claims customizados
  • Integration: Conecte com providers reais

Sua Jornada Começa Agora!

Pronto para se tornar um mestre da autenticação no Reino OIDC?

Desafio Final

Complete todos os cenários do Reino e implemente seu próprio Authorization Server. Ao final, você terá dominado OAuth 2.0 e OIDC!