Como Funciona o OAuth 2.0 - Diferença entre Autenticação e Autorização

12 min leitura | 2025.12.02

Diferença entre Autenticação e Autorização

Antes de entender o OAuth 2.0, vamos compreender a diferença entre autenticação e autorização:

  • Autenticação (Authentication): Confirmar “quem é você?”
  • Autorização (Authorization): Permitir “o que você pode fazer?”

OAuth 2.0 é um protocolo de autorização: É um mecanismo que permite acesso a recursos para aplicações de terceiros sem compartilhar as credenciais do usuário.

Os Atores do OAuth 2.0

  • Resource Owner: Usuário (proprietário dos dados)
  • Client: Aplicação que solicita acesso
  • Authorization Server: Servidor que emite access tokens
  • Resource Server: Servidor que hospeda os recursos protegidos

Fluxo de Código de Autorização

O fluxo mais seguro e comum:

  1. O client redireciona o usuário para o authorization server
  2. O usuário faz login e autoriza as permissões
  3. O authorization server retorna o código de autorização ao client
  4. O client troca o código de autorização por um access token
  5. Acessa o resource server com o access token
# 1. Requisição de Autorização
GET /authorize?
  response_type=code
  &client_id=YOUR_CLIENT_ID
  &redirect_uri=https://yourapp.com/callback
  &scope=read:user
  &state=random_string

# 4. Requisição de Token
POST /oauth/token
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code
&code=AUTHORIZATION_CODE
&redirect_uri=https://yourapp.com/callback
&client_id=YOUR_CLIENT_ID
&client_secret=YOUR_CLIENT_SECRET

Tipos de Token

Access Token

  • Token de curta duração para acessar recursos
  • Geralmente expira em 15 minutos a 1 hora
  • Enviado no header Authorization: Bearer

Refresh Token

  • Token para obter novos access tokens
  • Válido por longo período (dias a meses)
  • Precisa ser armazenado com segurança
# Atualizar access token com refresh token
POST /oauth/token
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token
&refresh_token=YOUR_REFRESH_TOKEN
&client_id=YOUR_CLIENT_ID
&client_secret=YOUR_CLIENT_SECRET

Scope

Scope limita as operações permitidas pelo access token:

  • read:user - Leitura de informações do usuário
  • write:posts - Criação e edição de posts
  • delete:comments - Exclusão de comentários

Princípio do Menor Privilégio: Solicite apenas os scopes mínimos necessários para reduzir riscos de segurança.

Resumo

OAuth 2.0 é um mecanismo que permite delegar acesso seguro a recursos sem compartilhar senhas. Compreendendo access tokens, refresh tokens e o design adequado de scopes, você pode construir aplicações seguras.

← Voltar para a lista