Skip to main contentO OAuth (Open Authorization) é um protocolo de padrão aberto que estabelece uma estrutura de autorização robusta, fundamental para a arquitetura de sistemas distribuídos e a segurança de aplicações modernas. Diferentemente de um protocolo de autenticação, o OAuth visa primariamente a delegação de acesso (autorização), permitindo que um Cliente (aplicação de terceiros) obtenha acesso limitado aos recursos protegidos de um Dono do Recurso (usuário final) em um Servidor de Recursos, sem que o Cliente manipule as credenciais de autenticação do usuário.
No OAuth, as solicitações de acesso são iniciadas pelo Cliente, por exemplo, um aplicativo móvel, site, aplicativo de desktop, etc. A solicitação, a troca e a resposta do token seguem o seguinte fluxo geral:
O cliente solicita autorização (solicitação de autorização) do servidor de Autorização, fornecendo a ID e o segredo do cliente como identificação; ele também fornece os escopos e um URI de endpoint (URI de redirecionamento) para enviar o token de acesso ou o código de autorização. O servidor de Autorização autentica o Cliente e verifica se os escopos solicitados são permitidos. O proprietário do recurso interage com o servidor de autorização para conceder acesso. O servidor de autorização é redirecionado de volta para o cliente com um código de autorização ou token de acesso, dependendo do tipo de concessão, como será explicado na próxima seção. Um token de atualização também pode ser retornado. Com o token de acesso, o cliente solicita acesso ao recurso a partir do servidor de recursos.
Após a autenticação bem-sucedida do usuário no Servidor de Autorização e a concessão explícita de consentimento (definição dos escopos de acesso), o Servidor de Autorização emite um Token de Acesso ao Cliente. Este token, que é uma credencial temporária, limitada e revogável, substitui a necessidade de compartilhar a senha do usuário, mitigando significativamente o risco de exposição de credenciais em caso de comprometimento do Cliente.
No contexto do Fixr, a autenticação com o Google utiliza exatamente essa estrutura. O Google atua como Servidor de Autorização e de Recursos, enquanto o Fixr é o Cliente que solicita acesso aos dados básicos do usuário, como nome, e-mail e foto de perfil. Quando o usuário opta por fazer login com o Google, ele é redirecionado para a página de autenticação do Google, onde insere suas credenciais e concede permissão para o Fixr acessar suas informações. Após essa etapa, o Google retorna ao Fixr com um código de autorização, que o sistema troca por um Token de Acesso por meio de uma requisição segura.
Com esse token, o Fixr obtém as informações do usuário diretamente da API do Google, criando ou vinculando sua conta de forma automática. Nenhuma senha do Google é armazenada ou processada pelo Fixr, garantindo maior segurança e confiabilidade. Além disso, o sistema implementa uma camada de controle interno: caso o usuário autenticado via Google não esteja previamente cadastrado ou autorizado na base de dados, o acesso é bloqueado, sendo necessário o contato com o administrador para liberação.
A imagem abaixo ilustra o funcionamento do protocolo de autorização OAuth na aplicação do Fixr.
Para mais informações sobre o serviço de autorização OAuth, visite o site oficial: autorização OAuth.