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:
- O client redireciona o usuário para o authorization server
- O usuário faz login e autoriza as permissões
- O authorization server retorna o código de autorização ao client
- O client troca o código de autorização por um access token
- 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áriowrite:posts- Criação e edição de postsdelete: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