OAuth 2.0: Componentes e Fluxo 3
Este conjunto aborda os componentes, papéis e o fluxo do protocolo OAuth 2.0. É destinado a estudantes de tecnologia e desenvolvedores.
Cartões · 52
- OAuth 2.0
- Framework de autorização que permite que aplicações terceiras 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; tipicamente o usuário final da aplicação.
- Resource Server (Servidor de Recursos)
- Servidor que hospeda os recursos protegidos e aceita requisições autenticadas mediante a validação de tokens de acesso.
- Client (Cliente)
- Aplicação que faz requisições a recursos protegidos em nome do proprietário do recurso e mediante a sua autorização.
- Authorization Server (Servidor de Autorização)
- Servidor responsável por autenticar o proprietário do recurso e emitir tokens de acesso após obter consentimento.
- Access Token (Token de Acesso)
- Credencial usada para acessar recursos protegidos, representando a autorização concedida ao cliente com escopo e validade específicos.
- Refresh Token
- Token de longa duração usado pelo cliente para obter um novo Access Token sem exigir nova interação com o usuário.
- Scope (Escopo)
- Parâmetro que define e restringe o nível de acesso e as operações permitidas a um Access Token no Resource Server.
- Consent Screen (Tela de Consentimento)
- Interface exibida pelo Authorization Server onde o usuário autoriza explicitamente o cliente a acessar seus dados.
- Client Identifier (client_id)
- Identificador público exclusivo emitido pelo Authorization Server para identificar a aplicação cliente registrada.
- Client Secret (client_secret)
- Chave secreta compartilhada apenas entre o cliente confidencial e o servidor de autorização para autenticar o cliente.
- Confidential Client (Cliente Confidencial)
- Cliente capaz de manter suas credenciais confidenciais com segurança, como aplicações executadas em servidores back-end.
- Public Client (Cliente Público)
- Cliente incapaz de manter credenciais em sigilo seguro, como SPAs executadas no navegador ou apps mobile nativos.
- Redirect URI (URI de Redirecionamento)
- Endereço pré-registrado para onde o servidor de autorização redireciona o usuário após a aprovação ou negação do acesso.
- Authorization Grant (Concessão de Autorização)
- Credencial que representa o consentimento do proprietário do recurso, usada pelo cliente para solicitar um token de acesso.
- Authorization Code Grant
- Fluxo mais seguro do OAuth 2.0, baseado em redirecionamento de navegador e troca de código no back-end para emissão de tokens.
- Authorization Code (Código de Autorização)
- Código temporário e de uso único emitido via navegador, trocado diretamente no servidor por tokens de acesso.
- PKCE (Proof Key for Code Exchange)
- Extensão do Authorization Code que protege clientes públicos contra interceptação de código sem exigir client_secret.
- Code Verifier (Verificador de Código)
- Sequência criptográfica aleatória de alta entropia gerada localmente pelo cliente público para uso com PKCE.
- Code Challenge (Desafio de Código)
- Derivação criptográfica do code_verifier (usualmente SHA-256) enviada inicialmente na requisição de autorização.
- Implicit Grant (Concessão Implícita)
- Fluxo legado onde o token de acesso era retornado diretamente na URL do navegador; atualmente desaconselhado pela RFC.
- Resource Owner Password Credentials Grant
- Fluxo legado onde o usuário fornece usuário e senha diretamente ao cliente; reservado apenas para clientes altamente confiáveis.
- Client Credentials Grant
- Fluxo usado em comunicação máquina a máquina (M2M) onde o próprio cliente autentica-se e acessa recursos próprios.
- Device Authorization Grant (Device Flow)
- Fluxo projetado para dispositivos com entrada limitada ou sem navegador, como Smart TVs e dispositivos IoT.
- Authorization Endpoint
- Ponto de extremidade no Authorization Server usado pelo cliente para obter a autorização do usuário via redirecionamento.
- Token Endpoint
- Ponto de extremidade HTTP no Authorization Server usado pelo cliente para trocar concessões ou refresh tokens por access tokens.
- Token Revocation Endpoint
- Ponto de extremidade que permite ao cliente invalidar ativamente tokens de acesso ou refresh tokens que não são mais necessários.
- Token Introspection Endpoint
- Endpoint onde servidores de recursos consultam o estado, escopo e metadados de um token de acesso recebido.
- Bearer Token
- Tipo de token de segurança em que qualquer entidade portadora do token tem acesso concedido, sem necessidade de provar posse de chave.
- Cabeçalho Authorization Bearer
- Cabeçalho HTTP padrão onde o cliente envia o token de acesso para o Resource Server no formato Authorization: Bearer <token>.
- State Parameter
- Valor opaco usado para manter estado entre a requisição e o callback e prevenir ataques de Cross-Site Request Forgery (CSRF).
- Nonce Parameter
- Valor de uso único associado a uma sessão para mitigar ataques de repetição em extensões de autenticação como OpenID Connect.
- JSON Web Token (JWT)
- Formato de token autido e estruturado com claims em JSON, assinado digitalmente, muito comum em implementações de OAuth 2.0.
- Opaque Token (Token Opaco)
- Identificador de token que não contém dados legíveis internamente, exigindo consulta ao banco ou introspecção para validação.
- Etapa 1 do Authorization Code: Solicitação de Autorização
- O cliente redireciona o navegador do usuário para o Authorization Endpoint com client_id, redirect_uri, scope e state.
- Etapa 2 do Authorization Code: Autenticação e Consentimento
- O usuário faz login no Authorization Server e aceita ou nega os privilégios solicitados pela aplicação.
- Etapa 3 do Authorization Code: Emissão do Código
- O servidor redireciona o navegador para a redirect_uri do cliente contendo o authorization code e o state como parâmetros de query.
- Etapa 4 do Authorization Code: Troca do Código por Tokens
- O back-end do cliente envia requisição POST para o Token Endpoint com o authorization code, client_id e client_secret.
- Etapa 5 do Authorization Code: Resposta com Access Token
- O Authorization Server valida o código e credenciais e devolve uma resposta JSON com access_token e opcionalmente refresh_token.
- Etapa 6 do Authorization Code: Acesso ao Recurso
- O cliente envia requisições HTTP para o Resource Server com o Access Token no cabeçalho Authorization: Bearer.
- Refresh Token Rotation
- Prática de segurança onde um novo refresh token é emitido a cada renovação de access token, invalidando o anterior.
- Sender-Constrained Tokens
- Tokens criptograficamente vinculados ao cliente emissor, impedindo que um invasor os use caso sejam interceptados.
- DPoP (Demonstrating Proof-of-Possession)
- Mecanismo da camada de aplicação que vincula tokens a uma chave privada pertencente ao cliente no envio de requisições.
- Mutual TLS (mTLS) no OAuth 2.0
- Autenticação mútua TLS usada tanto para autenticação de clientes quanto para vincular certificados a tokens de acesso.
- Diferença entre Autenticação e Autorização
- Autenticação confirma quem a entidade é; autorização determina o que essa entidade verificada tem permissão para fazer.
- OpenID Connect (OIDC)
- Camada de identidade baseada no protocolo OAuth 2.0 que fornece autenticação de usuários e emite ID Tokens.
- ID Token
- Token no formato JWT emitido pelo OIDC que contém asserções sobre a identidade do usuário autenticado.
- Validação de Token por Referência (Introspecção)
- O Resource Server envia o token ao Authorization Server via HTTP para validar status ativo, validade e permissões.
- Validação de Token por Valor (Autovalidável)
- O Resource Server valida a assinatura criptográfica e as claims do token JWT localmente usando a chave pública do emissor.
- JWKS (JSON Web Key Set)
- Conjunto público de chaves criptográficas disponibilizado pelo Authorization Server para verificação de assinaturas JWT.
- Parâmetro response_type
- Parâmetro na requisição de autorização que informa o tipo de resposta esperado, como code para o fluxo de código de autorização.
- Parâmetro grant_type
- Parâmetro enviado ao Token Endpoint informando o método usado para solicitar o token (ex: authorization_code, refresh_token).