O que e um Grant Type?

Contexto de Autorizacao OAuth 2.0

No ambito do OAuth 2.0 Authorization, o termo "Grant Type" refere-se ao metodo atraves do qual uma aplicacao obtem um token de acesso. Essencialmente, o grant type especifica o tipo de fluxo de autorizacao que a aplicacao usara para aceder aos dados do utilizador.

Diferentes Grant Types no OAuth 2.0

O OAuth 2.0 define varios grant types, adaptados para cenarios de aplicacao distintos:

OAuth 2.0 usando LoadFocus

  1. Authorization Code:
  • Melhor para: Aplicacoes que conseguem manter o segredo do cliente seguro, frequentemente aplicacoes do lado do servidor.
  • Fluxo: O utilizador e primeiro redirecionado para um servidor de autenticacao. Apos autenticacao bem-sucedida, e redirecionado de volta para a aplicacao com um codigo de autorizacao. A aplicacao troca este codigo por um token de acesso.
  1. Implicit:
  • Melhor para: Aplicacoes centradas no user-agent, como aplicacoes de pagina unica.
  • Fluxo: Espelha o fluxo de Authorization Code, mas o token de acesso e entregue diretamente sem um codigo intermediario. E considerado menos seguro que o metodo Authorization Code.
  1. Password (Resource Owner Password Credentials):
  • Melhor para: Aplicacoes altamente confiaveis, frequentemente pertencentes a mesma organizacao que o servidor de recursos.
  • Fluxo: Os utilizadores introduzem diretamente o seu nome de utilizador e password na aplicacao. A aplicacao usa estas credenciais para obter um token de acesso. Este fluxo e geralmente desencorajado a menos que o cliente seja altamente confiavel.
  1. Client Credentials:
  • Melhor para: Servicos ou aplicacoes que precisam de aceder aos seus proprios recursos, nao aos de um utilizador.
  • Fluxo: A aplicacao autentica-se usando as suas proprias credenciais (como client ID e secret) e recebe um token de acesso em troca.
  1. Device Code (para dispositivos sem capacidades de navegador abrangentes):
  • Melhor para: Dispositivos como smart TVs, consolas de jogos ou impressoras.
  • Fluxo: O dispositivo comunica com o servidor de autorizacao para obter um device code e user code. O utilizador introduz o user code noutro dispositivo (por exemplo, um smartphone). Apos verificacao, o dispositivo recebe um token de acesso.
  1. Refresh Token:
  • Uso: Nao e um fluxo independente mas complementa outros grant types. Quando o token de acesso expira, um refresh token permite que a aplicacao obtenha um novo sem que o utilizador tenha de fazer login novamente.

Porque sao os Grant Types Importantes?

Os grant types oferecem flexibilidade para diversos contextos de aplicacao. Cada um garante que a obtencao do token de acesso e o mais segura possivel, dadas as restricoes da aplicacao. A escolha do grant type afeta as interacoes entre o cliente, utilizador e servidor de autorizacao, tornando a sua selecao correta fundamental tanto para usabilidade como para seguranca.