fbpx
Segurança

O que é protocolo OAuth 2 e como colocá-lo em prática? Veja

As pessoas estão cada vez mais dependentes dos aplicativos em seu dia a dia, pois têm a possibilidade de ficarem conectadas 24 horas diárias em seus smartphones — criando contas em várias aplicações. Nesse cenário, coube aos desenvolvedores criarem soluções que agilizassem o acesso a esses serviços a partir de uma credencial única, sem perder o foco na segurança de dados. Em vez de terem que criar múltiplos logins para acessar diferentes serviços, o usuário pode acessá-lo a partir de um único serviço.

Você certamente já entrou em um app ou aplicação web que oferecia como alternativa de login a conta do Google ou Facebook. Ao optar por uma dessas opções, você consegue evitar o preenchimento de múltiplos formulários e o upload de fotos. Nesse modelo de login, você dá autorização para que a página tenha acessos a determinados dados de sua conta do Google ou Facebook a partir de uma credencial, fornecida a partir do protocolo OAuth 2.

Neste post, vamos entender o que é o protocolo OAuth 2, sua importância e como colocá-lo em prática. Confira!

O que é protocolo OAuth 2?

Como falamos acima, o OAuth 2 é um protocolo criado com o intuito de facilitar o acesso de uma aplicação usando os dados de outra. Basicamente, ao entrar em um site, o cliente clica na opção de logar com o perfil do Google. Após o clique, a página de login pede permissão de acesso ao Google, sem que haja a exposição da senha do usuário — que precisa confirmar essa autorização por meio de uma janela extra.

A partir daí, o usuário estará vinculado à página desejada, sem a necessidade de criar um cadastro, podendo revogar a permissão a qualquer momento. Como a autorização está vinculada via app, mesmo que o usuário modifique a sua senha do Google, a permissão continuará valendo e o seu login não será afetado. O OAuth 2 é utilizado para os mais diferentes modelos de autenticação, além das telas de login, também autentica as APIs.

Quais são os papéis do OAuth 2?

O OAuth 2 foi estruturado com base em 4 papéis, que são:

  • Resource Owner — é a pessoa ou organização que disponibiliza seus dados para acesso, também denominado de dono do recursos;
  • Client — aqui temos a aplicação que interagem com o Resource Owner, podendo ser, por exemplo, um navegador, no caso das aplicações web;
  • Resource Server — é a API que ficará exposta na web e que necessita de proteção de dados, ou seja, seu acesso é feito via token emitido pelo authorization server;
  • Authorization Server — quem autentica o usuário e emite os tokens de acesso, detendo todas as informações sobre o resource owner, fazendo a interação e interação com o usuário após a identificação do Client.

Como funciona o OAuth 2?

O funcionamento do OAuth 2 é estruturado em algumas etapas, que são a solicitação de autorização, concessão de autorização, token de acesso e recursos protegidos. Veja abaixo como está estruturado esse funcionamento.

  • Solicitação de autorização é a primeira etapa, quando o cliente — ou seja, a aplicação que desejamos fazer login — faz a solicitação para acessar os recursos do servidor do usuário.
  • Concessão de autorização do servidor do usuário — a partir do momento em que o usuário autoriza a solicitação, o app receba uma concessão de autorização;
  • Solicitação de token — a partir da autorização do usuário, o cliente solicita o token de acesso ao servidor de autorização;
  • emissão ro token — ao confirmar a autenticação da identidade, o servidor de autorização emite o token de acesso para aplicação;
  • apresentação do token — sempre que o cliente necessitar de algum recurso do servidor de recursos, deverá apresentar o token adquirido;
  • entrega dos recursos — com a apresentação do token válido, o servidor de recursos apresenta o reursos solicitado pelo cliente;

Qual é a importância do protocolo OAuth 2?

A utilização do OAuth 2 é de suma importância para que haja mais agilidade nas conexões e troca de dados via web, sem abrir mão da segurança. Além de facilitar o login com a autenticação e importação de dados de outras aplicações, o OAuth 2 permite a troca de arquivos armazenados em nuvem quando os dois pontos de troca não utilizam omesmo sistema.

É também útil quando o usuário anexa arquivos em um e-mail ou navega para escolher os arquivos que serão anexados. O protocolo pode ser utilizado em segundo plano para permitir que o e-mail autentique e navegue até os arquivos protegidos sem a exigência de login no armazenamento onde o arquivo está hospedado.

Quais as diferenças entre OAuth e OAuth 2?

Sendo uma evolução do OAuth, o OAuth 2 apresenta aprimoramentos e adição de novos recursos. Embora eles apresentem funções semelhantes, eles apresentam uma série de diferenças básicas que veremos a seguir.

Redução na necessidade de usar aplicativos de terceiros na autenticação

Com o OAuth 1 era necessário que o usuário fosse direcionado a uma janela do navegador para o serviço desejado, para autenticar, copiar o token e depois voltar para o app. Com a versão OAuth 2 o usuário consegue fazer essa autenticação diretamente do app que está utilizando, sem a abertura de abas extras.

Disponibilidade em aplicativos sem criptografia:

Ao contrário do que acontecia na versão 1, o OAuth 2 não exige que os aplicativos tenham criptografia, ou seja, permite que as solicitações sejam realizadas apenas com utilização do token emitido via HTTPS.

Redução da complexidade das assinaturas

Outro ponto de aprimoramento que o OAuth 2 traz é a redução da complexidade das assinaturas, que não dependem mais de análise, codificação especial ou classificação. A primeira versão era bem mais burocrática, o que acabava fazendo com que muitos serviços não adotassem.

Melhor separação de funções

Outro ponto marcante em relação ao OAuth 2 é a separação clara de funções que existe entre o servidor responsável pelo tratamento de solicitações e o responsável pela autorização do usuário — o que contribui para uma maior organização do fluxo de dados. Na versão anterior, esses processos eram realizados de forma conjunta.

Esperamos que, após a leitura deste post, você tenha entendido o que é o protocolo OAuth 2 e a sua importância para a fluidez e segurança na troca de informações via web. Mais do que facilitar o login e acesso, a criação desses protocolos têm como foco a integração de soluções desenvolvidas por empresas diferentes, que podem complementar ou trocar dados em busca da resolução de problemas de um cliente e da evolução de sistemas.

Gostou do post Então, siga a gente nas redes sociais e receba em primeira mão as nossas novidades. Estamos no Facebook, Instagram, LinkedIn e Twitter.