Fluxo de código de autorização OAuth
- Última atualização2024/10/31
Fluxo de código de autorização OAuth
O Fluxo de código de autorização é um protocolo de segurança usado no OAuth 2.0 para permitir que aplicativos de terceiros acessem os recursos de um usuário sem expor as credenciais.
Nesse fluxo, o aplicativo cliente redireciona o usuário para o servidor de autorização, onde ele efetua login e aprova a solicitação de acesso do cliente. Após a aprovação, o servidor de autorização envia um código de autorização ao cliente, que ele troca por um token de acesso e, por opção, por um token de atualização. Esse token de acesso é então usado para fazer solicitações autorizadas ao servidor de recursos em nome do usuário.
Esse fluxo é, em geral, usado em cenários em que um utilizador pretende conceder acesso aos recursos (como dados ou serviços) a um aplicativo de terceiros sem compartilhar de forma direta as credenciais.
A principal diferença entre o Fluxo de código de autorização e o Fluxo de código de autorização com PKCE (Proof Key for Code Exchange, chave de prova para troca de código) está nos mecanismos de segurança utilizados para prevenir determinados ataques, sobretudo contra aplicativos de dispositivos móveis e nativos.
No fluxo de código de autorização padrão, o cliente recebe um código de autorização após o usuário se autenticar no servidor de autorização. O cliente então troca esse código por um token de acesso. Entretanto, esse fluxo é vulnerável a ataques de interceptação de código de autorização, onde um invasor pode interceptar o código de autorização e usá-lo para obter um token de acesso.
O fluxo de código de autorização com PKCE adiciona uma camada adicional de segurança usando um segredo gerado de forma dinâmica, o verificador de código, para autenticar a solicitação de autorização. Isso o torna mais seguro, especialmente em ambientes onde é difícil armazenar segredos de clientes com segurança, como aplicativos móveis ou nativos.
Para criar um tipo de concessão usando Fluxo de código de autorização: