Métodos de autenticação de APIs

O que a autenticação faz?
A Autenticação na API Rest permite que se obtenha autorização para se comunicar e realizar emissão, recebimento e importação de DFes (Documentos Fiscais Eletronicos) de uma empresa. Antes de utilizar um dos serviços da API, o usuário deve obter um x-auth-token.


Como devo autenticar na API?
Podemos autenticar solicitações de API usando autenticação básica com endereço de email e senha, com seu endereço de e-mail e um token ou com um token de acesso OAuth, os mesmos definem o cabeçalho de autorização de maneira diferente.


Autenticação vs Autorização


Devemos primeiramente definir o que realmente é a autenticação, este tópico geralmente é confundido com um termo intimamente relacionado: Autorização.

O ideal para diferenciar os tópicos é perguntar: O que eles realmente provam?
A autenticação é quando uma entidade prova uma identidade, em outras palavras, prova que você é quem diz ser.
A autorização é quando uma entidade comprova o direito de acesso, em outras palavras, prova que você tem o direito de fazer uma autorização.

Métodos comuns de autenticação de API

BÁSICA HTTP

Método de autenticação Básico HTTP

Nessa abordagem, um agente de usuário HTTP fornece um nome de usuário e senha para autenticação, não requer cookies, IDs de sessão, páginas de login etc…
O problema é que, a menos que o processo seja rigorosamente aplicado durante todo o ciclo de dados ao SSL(Secure Sockets Layer – Tornar segura a transmissão de informações sensíveis como dados pessoais, de pagamento ou de login) para a segurança, a autenticação é transmitida em aberto em linhas não seguras.
O método de autenticação básico HTTP é raramente recomendada por possuir várias vulnerabilidades de segurança.

CHAVES DE API

Método de autenticação por chaves de API

As chaves de API são um padrão do setor, mas não devem ser consideradas uma medida de segurança holística.

Foram criadas como uma correção para os problemas iniciais da autenticação básica HTTP e outros sistemas desse tipo.
Nesta abordagem, um valor gerado é atribuído a cada usuário iniciante, verificando que o usuário é conhecido. Quando o usuário tentar entrar novamente, a sua chave é usada para provar que é o mesmo usuário de antes.

Há muitos anos tem sido uma abordagem padrão para diversos provedores de API, pelo fato de ser muito rápida e ágil. Além disso, é muito fácil configurar o próprio sistema e suas chaves geradas.
O problema, no entanto, é que as chaves de API são frequentemente usadas para o que não são indicadas.

OAUTH

Método de autenticação OAUTH

Nesta abordagem, o usuário efetua login no sistema. Esse sistema solicitará autenticação, geralmente na forma de um token, o usuário solicitará para o servidor de autenticação, que rejeitará ou permitirá essa autenticação. O token é fornecido ao usuário e depois ao solicitante.

Para permitir escopo e controle de validade mais sofisticados, o OAUTH combina autenticação e autorização. Tecnicamente, o OAuth não é um método de autenticação e autorização, quando ele é usado apenas para autenticação, é chamado de “pseudo-autenticação”.


Este é fundamentalmente um sistema muito mais seguro e poderoso do que as outras abordagens, principalmente porque permite o estabelecimento suave de escopo (ou seja, quais sistemas a chave permite que o usuário se autentique e valide).
O OAuth oferece muitos benefícios, além, da facilidade de uso, e o mais importante oferece escalabilidade de segurança.

Conclusão

Visto que o OAuth é a melhor opção, há alguns casos de uso nos quais as chaves de API ou a autenticação básica HTTP podem ser apropriadas.

Deste modo, esses casos de uso são poucos, portanto, é muito difícil tentar achar algo ruim contra o OAuth. O OAuth oferece muitos benefícios, além, da facilidade de uso, e o mais importante oferece escalabilidade de segurança.

Autor: Guilherme Scariot Vargas.

Deixe um comentário

O seu endereço de e-mail não será publicado.