OAuth 2.0

Definição

OAuth 2.0 é um protocolo de autorização amplamente utilizado para permitir que aplicativos de terceiros acessem recursos de um usuário sem que precisem conhecer diretamente sua senha.

Ele funciona como uma ponte entre:

  • O usuário (dono dos dados),
  • O cliente (aplicativo que quer acessar os dados),
  • E o provedor de autorização (como Google, Facebook, GitHub).

Em vez de enviar login e senha para um serviço externo, o usuário autoriza o aplicativo a acessar seus dados de forma limitada, utilizando tokens de acesso.

OAuth 2.0 é amplamente utilizado em APIs modernas e é a base de autenticações com login social (ex.: “Entrar com Google”).

Objetivos do OAuth 2.0

  • Delegar acesso com segurança: permitir que aplicações acessem dados sem conhecer as credenciais do usuário.
  • Evitar exposição de senhas: o usuário autentica diretamente com o provedor.
  • Permitir escopos de acesso controlado: o acesso pode ser limitado a operações específicas (ex.: só leitura).
  • Proteger APIs e serviços: reduzir o risco de exposição indevida de dados e uso não autorizado.

Fluxo simplificado — Authorization Code Flow

[1] Aplicativo redireciona usuário para o provedor de autorização
[2] Usuário autentica e consente o acesso
[3] Provedor redireciona de volta com um "authorization code"
[4] Aplicativo troca o código por um token de acesso
[5] Aplicativo usa o token para acessar os dados da API

Exemplo ilustrativo — Requisição de token (via cURL)

curl --request POST \
  --url https://auth.exemplo.com/token \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data 'grant_type=authorization_code&code=abc123&redirect_uri=https://app.exemplo.com/callback&client_id=CLIENTE_ID&client_secret=SEGREDO'

Saída esperada (resposta da API)

{
  "access_token": "eyJhbGciOi...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "refresh_token": "def456",
  "scope": "perfil email"
}

O ciclo do OAuth 2.0

[Usuário autoriza o app] --> [Token de acesso é emitido] --> [App usa o token para acessar a API]
  • Nenhuma senha do usuário é compartilhada com o aplicativo.

  • O token pode ter validade limitada e escopo controlado.

Relacionados

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com