OAUTH 2.0

OAuth 2.0 é um protocolo de autorização aberto e padrão que permite que aplicativos de terceiros obtenham acesso limitado a recursos de um usuário em outro serviço, sem a necessidade de compartilhar suas credenciais de acesso. Descubra mais no artigo de hoje!

Por
4 min. de leitura

1.Conceito

OAuth 2.0 é um protocolo de autorização aberto e padrão que permite que aplicativos de terceiros obtenham acesso limitado a recursos de um usuário em outro serviço, sem a necessidade de compartilhar suas credenciais de acesso. Ele fornece uma estrutura para delegação de acesso seguro e simplificado para APIs e serviços web.

 

2.Arquitetura e Componentes

2.1. Componentes Principais:

  1. Resource Owner (RO): Usuário detentor dos recursos e responsável por conceder permissões de acesso.
  2. Client (C): Aplicativo de terceiros que solicita acesso aos recursos do usuário.
  3. Authorization Server (AS): Servidor responsável por autenticar o usuário e emitir tokens de acesso.
  4. Resource Server (RS): Servidor onde os recursos estão armazenados e que aceita tokens de acesso para fornecer acesso aos recursos.

 

2.2. Tokens

  1. Authorization Code: Código temporário gerado pelo AS, utilizado para trocar pelo token de acesso.
  2. Access Token: Token utilizado pelo aplicativo para acessar os recursos no RS.
  3. Refresh Token (opcional): Token utilizado para solicitar novos tokens de acesso sem a necessidade de autenticar o usuário novamente.

 

3.Funcionamento

3.1. Fluxo Básico

  1. O aplicativo solicita autorização do usuário (RO) para aces-sar os recursos.
  2. O usuário (RO) concede ou nega a autorização.
  3. Se autorizado, o aplicativo solicita um Authorization Code do AS, fornecendo informações sobre si mesmo e a autorização do usuário.
  4. O AS emite o Authorization Code para o aplicativo.
  5. O aplicativo troca o Authorization Code por um Access To-ken, fornecendo suas credenciais e o Authorization Code ao AS.
  6. O AS valida as informações, emite e envia o Access Token (e opcionalmente um Refresh Token) para o aplicativo.
  7. O aplicativo usa o Access Token para acessar os recursos do usuário no RS.
  8. O RS valida o Access Token e, se válido, fornece acesso aos re-cursos solicitados.

3.2. Outros Fluxos

– Implicit Grant: Adequado para aplicativos clientes que não têm capacidade de armazenar segredos do cliente (por exemplo, aplicativos JavaScript).

– Client Credentials Grant: Adequado para aplicativos que acessam recursos em seu próprio nome, em vez de em nome do usuário.

– Resource Owner Password Credentials Grant: Adequado para aplicativos confiáveis que têm acesso direto às credenciais do usuário (não recomendado para a maioria dos casos de uso).

 

4.Segurança 

OAuth 2.0 utiliza mecanismos de segurança, como SSL/TLS e crip-tografia, para garantir a confidencialidade, integridade e autenticidade dos dados transmitidos entre os componentes envolvidos no processo de autorização e acesso aos recursos.

 

5.Considerações e boas práticas

5.1. Limitação de escopo

– Ao solicitar acesso aos recursos do usuário, é importante solicitar apenas os escopos necessários para o funcionamento do aplicativo. Isso minimiza os riscos de segurança e protege a priva-cidade do usuário.

5.2. Tokens de curta duração

– Utilizar Access Tokens com duração limitada para reduzir o risco de comprometimento de tokens. O uso de Refresh Tokens pode ajudar a manter a sessão do usuário ativa sem a necessidade de autenticação frequente.

5.3. Armazenamento seguro de tokens

– Armazenar tokens de forma segura (por exemplo, usando criptografia) para evitar vazamento de informações e acesso não autorizado aos recursos do usuário.

5.4. Verificação de redirecionamento

– Verificar se a URL de redirecionamento é a mesma que foi registrada durante o cadastro do aplicativo no AS. Isso evita ata-ques de interceptação e garante que o Authorization Code seja en-viado apenas para a aplicação correta.

 

6.Implementações e bibliotecas

Existem várias implementações e bibliotecas disponíveis para diferentes linguagens e plataformas que facilitam a integração com o OAuth 2.0. Algumas delas incluem:

  • Spring Security OAuth2 (Java)
  • OAuthLib (Python)
  • Passport (Node.js)
  • OmniAuth (Ruby)
  • league/oauth2-client (PHP)

 

7.Conclusão

OAuth 2.0 é um protocolo de autorização flexível e seguro que permite que aplicativos de terceiros acessem recursos em nome do usuário sem comprometer suas credenciais. Ele oferece vários fluxos para atender a diferentes casos de uso e cenários de aplicativos. Ao seguir as melhores práticas e diretrizes de seguran-ça, é possível criar soluções robustas e seguras para gerenciamen-to de acesso e autorização.

 

Vamos ver como essa teoria já foi cobrada em questão de concurso?

 

  1. Ano: 2022 Banca: FCC Órgão: TRT – 4ª REGIÃO (RS) Prova: FCC – 2022 – TRT – 4ª REGIÃO (RS) – Analista Judiciário – Especialidade: Tecnologia da Informação

O protocolo OAuth 2.0 permite que serviços de terceiros troquem informações sem que seja necessário fornecer uma senha. No OA-uth 2.0

  1. A) há total compatibilidade com as versões anteriores deste proto-colo. 
  2. B) um único servidor de autorização pode emitir tokens de acesso aceitos por vários servidores de recursos.
  3. C) o servidor de autorização não pode ser o mesmo que o servidor de recursos.
  4. D) há cinco funções: proprietário do recurso, servidor de recursos, cliente, servidor de logs e repositório de credenciais.
  5. E) os refresh tokens são emitidos para o cliente pelo servidor de recursos e são usados para obter um novo access token quando o atual expira.

 

Letra B.

Comentário: 

O protocolo OAuth 2.0 permite que serviços de terceiros troquem informações sem que seja necessário fornecer uma senha. 

Em relação às alternativas apresentadas, a letra A está incorreta, pois o OAuth 2.0 não possui compatibilidade total com as versões anteriores. 

A letra B está correta, pois um único servidor de autorização pode emitir tokens de acesso aceitos por vários servidores de recursos, o que permite uma maior escalabilidade e flexibilidade. 

A letra C está incorreta, pois o servidor de autorização pode ser o mesmo que o servidor de recursos. 

A letra D está incorreta, pois o OAuth 2.0 possui quatro funções: proprietário do recurso, servidor de recursos, cliente e servidor de autorização. 

Por fim, a letra E está correta, pois os refresh tokens são emitidos para o cliente pelo servidor de autorização e são usados para obter um novo access token quando o atual expira. 

 

  1. Ano: 2023 Banca: FEPESE Órgão: EPAGRI Prova: FEPESE – 2023 – EPAGRI – Analista de Suporte

O OAuth 2.0 é um protocolo padrão de autorização. Este protocolo possui alguns papéis (roles) definidos.

Em qual “role” são emitidos os “Access Token”?

  1. A) Client
  2. B) Client Owner
  3. C) Resource Server
  4. D) Resource Owner
  5. E) Authorization Server

Letra E.

Comentário:

No protocolo OAuth 2.0, o papel do Authorization Server é autenti-car o usuário e emitir o Access Token, que será usado pelo Client para acessar recursos protegidos no Resource Server. 

As demais alternativas não correspondem ao papel responsável pela emissão dos Access Tokens. 

O Client (alternativa A) é a aplicação que solicita acesso aos recur-sos protegidos. 

O Client Owner (alternativa B) é o proprietário da aplicação Client. 

O Resource Server (alternativa C) é o servidor que hospeda os re-cursos protegidos e que requer o Access Token para acessá-los. 

Já o Resource Owner (alternativa D) é o proprietário dos recursos protegidos que autoriza o acesso a eles. 

 

  1. OAuth 2.0 é um protocolo de autenticação e autorização de usuários para que possam acessar recursos de serviços web de terceiros.

Errado.

Comentário: 

Embora o OAuth 2.0 seja um protocolo de autorização, ele não se destina à autenticação de usuários. Em vez disso, ele se concentra em permitir que um usuário conceda permissões a um aplicativo de terceiros para acessar recursos em seu nome, sem compartilhar suas credenciais de login.

 

Então é isso! 

Bons estudos e até o nosso próximo artigo.

 

Prof. Jósis Alves

Analista de TI no Supremo Tribunal Federal

 


Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil?
Clique nos links abaixo:

CONCURSOS ABERTOS

CONCURSOS 2023

Receba gratuitamente no seu celular as principais notícias do mundo dos concursos!
Clique no link abaixo e inscreva-se gratuitamente:

TELEGRAM

Por
4 min. de leitura