Vsão geral do OAuth
OAuth (Open Authorization) é um protocolo de autenticação que permite aos usuários conceder acesso limitado aos seus recursos em um site ou aplicativo para outro site ou aplicativo, sem compartilhar suas credenciais de login reais.
OAuth atua como um intermediário confiável que permite conceder permissão para um serviço acessar seus dados de outro serviço sem revelar seu nome de usuário e senha. Este documento inclui uma explicação técnica do fluxo de trabalho do OAuth e uma analogia prática do OAuth.
Fluxo de trabalho OAuth
OAuth fornece uma maneira segura e padronizada para os usuários concederem acesso aos seus dados em diferentes sites e aplicativos sem compartilhar suas credenciais de login. Ele garante que você tenha controle sobre quais serviços podem acessar seus dados e permite revogar o acesso a qualquer momento.
A lista a seguir é uma explicação passo a passo de como o OAuth funciona.
Você (o usuário) deseja usar um site ou aplicativo (chamado de “cliente”) que requer acesso aos seus dados em outro site ou aplicativo (chamado de “servidor de recursos”).
O cliente solicita permissão para acessar seus dados do servidor de recursos. Normalmente faz isso redirecionando você para a página de login do servidor de recursos.
Você insere suas credenciais de login diretamente na página de login do servidor de recursos. Essa etapa é crucial porque seu nome de usuário e senha nunca são compartilhados com o cliente.
O servidor de recursos verifica suas credenciais e autentica você. Uma vez autenticado, gera um token de acesso exclusivo para o cliente.
O servidor de recursos redireciona você de volta para o aplicativo cliente, fornecendo o token de acesso junto com o redirecionamento.
O cliente recebe o token de acesso e o envia ao servidor de recursos sempre que precisar acessar seus dados.
O servidor de recursos verifica a validade do token de acesso. Se o token for válido, ele concede ao cliente acesso aos recursos solicitados por um período limitado.
O cliente pode usar o acesso concedido para recuperar ou modificar seus dados no servidor de recursos, mas somente dentro do escopo definido pelo token de acesso. O escopo determina quais ações e dados o cliente pode acessar.
Se o token de acesso expirar ou se o cliente precisar de permissões adicionais, o cliente poderá solicitar um novo token de acesso passando novamente pelo processo de autenticação.
Analogia prática do OAuth
A seguir está uma analogia de como o OAuth funciona usando um cenário prático.
Imagine que você está dando uma festa e deseja contratar um fornecedor (o cliente) para cuidar da comida. No entanto, você não quer dar ao fornecedor as chaves da sua casa (suas credenciais de login), porque isso lhes daria acesso a todos os seus pertences pessoais. Portanto, você usa um organizador de festa confiável (OAuth) para gerenciar o acesso.
Você diz ao organizador da festa que deseja contratar um fornecedor. O organizador da festa sabe como administrar o acesso à sua casa e aos serviços do bufê.
O organizador da festa entra em contato com o fornecedor e o envia para uma reunião em sua casa. Você não está em casa neste momento.
O fornecedor chega em sua casa, mas percebe que não pode entrar sem a sua permissão (token de acesso). Ele liga para você para pedir acesso.
Você, como proprietário, deseja verificar a credibilidade do fornecedor antes de conceder acesso. Então, você faz algumas perguntas ao fornecedor para confirmar sua identidade (autenticação).
Quando estiver satisfeito com as credenciais do fornecedor, você fornece a ele um código de acesso temporário (token de acesso) por telefone. Este código permite-lhes entrar na sua casa e preparar a comida, mas apenas no âmbito das suas funções de restauração.
O fornecedor entra em sua casa usando o código de acesso e começa a preparar a comida. Eles podem acessar a cozinha e a área de jantar, mas estão proibidos de entrar em outros cômodos.
Após um determinado período ou quando a festa termina, o código de acesso expira, garantindo que o fornecedor não possa entrar novamente em sua casa sem a sua permissão.
Neste cenário, você (o proprietário) é o usuário, o fornecedor é o aplicativo cliente, sua casa representa seus dados pessoais no servidor de recursos e o organizador da festa é o OAuth.
O código de acesso serve como token de acesso, permitindo ao cliente (fornecedor) acesso limitado aos seus recursos (casa) sem comprometer suas credenciais de login (chaves da casa).
OAuth atua como um intermediário confiável, facilitando o compartilhamento seguro de seus dados entre serviços enquanto mantém o controle sobre as permissões de acesso.