OAuth 2.0: Componentes e Fluxo
Estudo sobre os componentes, terminologias e fluxos do protocolo OAuth 2.0 para profissionais e estudantes de tecnologia.
Cartões · 50
- OAuth 2.0
- Framework de autorização que permite que aplicações de terceiros obtenham acesso limitado a um serviço HTTP em nome do proprietário do recurso.
- Resource Owner (Proprietário do Recurso)
- Entidade capaz de conceder acesso a um recurso protegido, geralmente o usuário final humano proprietário dos dados.
- Client (Cliente)
- Aplicação que faz requisições a recursos protegidos em nome do Resource Owner após obter a devida autorização.
- Resource Server (Servidor de Recursos)
- Servidor que hospeda os recursos protegidos e responde a requisições com dados autorizados mediante a validação de tokens.
- Authorization Server (Servidor de Autorização)
- Servidor que autentica o Resource Owner e emite tokens de acesso para o Client após obter consentimento formal.
- Access Token (Token de Acesso)
- Credencial usada pelo Client para acessar recursos protegidos, contendo escopo, validade e permissões delegadas.
- Refresh Token
- Credencial de longa duração usada pelo Client para obter novos Access Tokens sem exigir nova autenticação do usuário.
- Authorization Grant (Concessão de Autorização)
- Credencial que representa a autorização do Resource Owner, usada pelo Client para obter um Access Token.
- Authorization Code Grant
- Fluxo mais seguro e recomendado para aplicações web tradicionais e móveis, usando um código temporário intermediário.
- Authorization Code (Código de Autorização)
- Código temporário de uso único emitido pelo servidor via redirecionamento e trocado no backend por um Access Token.
- PKCE (Proof Key for Code Exchange)
- Extensão de segurança para o fluxo de código que impede a interceptação do código de autorização em clientes públicos.
- Code Verifier (PKCE)
- Cadeia criptográfica aleatória de alta entropia criada pelo cliente antes de iniciar a requisição de autorização.
- Code Challenge (PKCE)
- Versão transformada (geralmente via SHA-256) do Code Verifier enviada na requisição inicial de autorização.
- Client Credentials Grant
- Fluxo usado na comunicação direta máquina para máquina (M2M) onde o próprio cliente é o dono do recurso.
- Implicit Grant
- Fluxo legado e obsoleto que retornava tokens diretamente na URL, desaconselhado devido a riscos de vazamento.
- Resource Owner Password Credentials Grant
- Fluxo legado onde o usuário envia usuário e senha diretamente ao Client, desaconselhado pela especificação moderna.
- Device Authorization Grant
- Fluxo projetado para dispositivos com entrada de texto limitada ou sem navegador, como Smart TVs e consoles.
- Redirect URI (URI de Redirecionamento)
- Endereço pré-cadastrado no servidor para onde o usuário é redirecionado junto com o código de autorização ou erro.
- Scope (Escopo)
- Mecanismo que limita o nível de acesso e permissões concedidas a um Access Token sobre os recursos da API.
- State (Parâmetro de Estado)
- Valor opaco aleatório enviado pelo Client para vincular requisições e respostas, prevenindo ataques de CSRF.
- Confidential Client (Cliente Confidencial)
- Aplicação capaz de manter suas credenciais em segredo com segurança, como um backend rodando em servidor próprio.
- Public Client (Cliente Público)
- Aplicação incapaz de proteger segredos de autenticação, como Single Page Applications (SPAs) e apps móveis nativos.
- Client ID (Identificador do Cliente)
- Sequência pública fornecida pelo servidor de autorização para identificar a aplicação cliente de forma unívoca.
- Client Secret (Segredo do Cliente)
- Senha secreta compartilhada conhecida apenas pelo Client confidencial e pelo Authorization Server para autenticação.
- Authorization Endpoint
- Ponto de extremidade HTTP no servidor de autorização onde o usuário interage via navegador para consentir o acesso.
- Token Endpoint
- Ponto de extremidade HTTP no servidor de autorização usado pelo cliente para trocar concessões por tokens de acesso.
- Bearer Token
- Token que concede acesso a qualquer entidade que o possua, exigindo transporte criptografado exclusivo via TLS/HTTPS.
- JSON Web Token (JWT)
- Formato estruturado comum de token assinado digitalmente que contém declarações (claims) sem exigir consulta a banco.
- Opaque Token (Token Opaco)
- Token cujo conteúdo é uma cadeia arbitrária incompreensível para o cliente, exigindo validação via introspecção.
- Token Introspection (RFC 7662)
- Ponto de extremidade que permite ao Resource Server consultar o Authorization Server para validar um token ativo.
- Token Revocation (RFC 7009)
- Mecanismo que permite ao cliente notificar o servidor de autorização para invalidar antecipadamente um token.
- Response Type (Parâmetro response_type)
- Informa ao Authorization Endpoint qual tipo de concessão está sendo solicitada (ex.: code).
- Grant Type (Parâmetro grant_type)
- Informa ao Token Endpoint qual método de concessão está sendo trocado por tokens (ex.: authorization_code).
- Consent Screen (Tela de Consentimento)
- Interface exibida pelo servidor de autorização onde o usuário revisa e aprova as permissões pedidas pelo cliente.
- Front-Channel (Canal Frontal)
- Comunicação indireta entre componentes realizada por meio de redirecionamentos no navegador web do usuário.
- Back-Channel (Canal Traseiro)
- Comunicação direta via requisições HTTP seguras entre servidores, invisível ao navegador do usuário final.
- RFC 6749
- Documento oficial que padroniza o núcleo das especificações da arquitetura e fluxos do protocolo OAuth 2.0.
- RFC 6750
- Especificação técnica que detalha como clientes devem transmitir Bearer Tokens em requisições HTTP.
- Cabeçalho Authorization Bearer
- Método padrão recomendado pela RFC 6750 para enviar o Access Token em uma requisição HTTP protegida.
- OpenID Connect (OIDC)
- Camada de identidade baseada em OAuth 2.0 que fornece autenticação de usuários através de um ID Token.
- ID Token
- Token em formato JWT introduzido pelo OIDC que carrega informações sobre a identidade autenticada do usuário.
- Cross-Site Request Forgery (CSRF) em OAuth
- Vulnerabilidade onde um invasor injeta seu próprio código de autorização na sessão da vítima, evitada pelo state.
- Authorization Code Injection
- Ataque interceptando o código de autorização em trânsito, mitigado com o uso obrigatório do protocolo PKCE.
- Token Lifetime (Tempo de Vida do Token)
- Período durante o qual o Access Token é válido, geralmente curto para mitigar riscos de exposição indesejada.
- Refresh Token Rotation
- Técnica de segurança que invalida o Refresh Token usado e emite um novo a cada renovação de credenciais.
- RFC 8707 (Resource Indicators)
- Extensão do OAuth 2.0 que permite ao cliente especificar a audiência ou servidor de destino pretendido para o token.
- Discovery Document (.well-known/openid-configuration)
- Metadados públicos padronizados que contêm URLs de endpoints, algoritmos e recursos suportados pelo servidor.
- OAuth 2.0 Rich Authorization Requests (RAR)
- Extensão que permite expressar detalhes refinados de autorização além dos nomes estáticos do parâmetro scope.
- Mutual TLS (mTLS) para OAuth 2.0
- Mecanismo que vincula criptograficamente tokens de acesso ao certificado do cliente, impedindo o uso por terceiros.
- Demonstrating Proof-of-Possession (DPoP)
- Protocolo a nível de aplicação que vincula tokens a uma chave pública do cliente, evitando replay de tokens roubados.