Autenticação X autorização: como elas diferem?

Authn é a abreviação de autenticação e authz é a abreviação de autorização. Esses são dois conceitos separados, mas intimamente interligados no mundo do gerenciamento de identidade e acesso (IAM).

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Contraste entre authn e authz
  • Descrever métodos comuns de autenticação
  • Explicar várias abordagens de autorização

Copiar o link do artigo

Autorização (authz) X autenticação (authn)

Em segurança da informação, autenticação (abreviada como authn) e autorização (authz) são conceitos relacionados, mas separados. Ambos são uma parte importante do gerenciamento de identidade e acesso (IAM).

Como authn e authz são diferentes? Simplificando, authn tem a ver com identidade, ou quem é alguém, enquanto authz tem a ver com permissões, ou o que alguém tem permissão para fazer.

O que é autenticação (authn)?

Autenticação significa certificar-se de que uma pessoa ou dispositivo é quem (ou o que) eles afirmam ser. Ao pegar ingressos para um evento, pode ser solicitado que a pessoa mostre um documento de identificação para verificar sua identidade; da mesma forma, um aplicativo ou banco de dados pode querer certificar-se de que um usuário é legítimo verificando sua identidade. A autenticação garante que os dados não sejam expostos à pessoa errada.

Quais são alguns métodos de autenticação comuns?

Combinação de nome de usuário e senha

Um dos métodos mais comuns de autenticação é solicitar que um usuário insira seu nome de usuário e senha. Quando Jessica carrega sua conta de e-mail em seu navegador, o serviço de e-mail ainda não sabe quem ela é — mas assim que ela insere seu nome de usuário e senha no formulário de login, o serviço pode verificar essas credenciais, autenticá-la como Jessica, e fazer login na conta dela.

Embora a maioria das pessoas esteja familiarizada com esse tipo de autenticação, nomes de usuário e senhas podem ser usados para mais do que apenas autenticar usuários. Endpoints de API podem ser autenticados dessa forma, por exemplo.

Autenticação de vários fatores (MFA)

O problema com a autenticação de nome de usuário e senha é que as senhas geralmente podem ser adivinhadas ou roubadas por partes maliciosas. A exigência de fatores adicionais de autenticação aumenta a segurança dos usuários; esse conceito é chamado de autenticação multifator (MFA). Quando a MFA é usada, um invasor precisa de mais do que uma senha para se autenticar falsamente como um usuário legítimo.

A MFA é mais frequentemente implementada como autenticação de dois fatores (2FA). Hoje, muitos serviços implementam a 2FA pedindo aos usuários que provem que têm um token que foi emitido para eles. Existem dois tipos de tokens: tokens "soft", como um código enviado a um usuário via SMS ou por meio de um aplicativo para dispositivos móveis e tokens "hard", como chaves USB. A 2FA e a MFA também podem usar fatores de autenticação biométrica (descritos abaixo).

Certificado de chave pública

A autenticação de chave pública é um pouco mais complexa do que essas outras formas de autenticação, mas quando implementada corretamente, pode ser mais segura. Ela usa criptografia de chave pública para verificar se a parte autenticada tem ou não a chave privada correta.

(Consulte Como funciona a criptografia de chave pública? para saber como funcionam as chaves públicas e as chaves privadas).

O uso mais comum da autenticação de chave pública está na Transport Layer Security (TLS), em que ela é usada para autenticar um servidor web. Os dispositivos dos usuários realizam esse tipo de autenticação sempre que carregam um site que usa HTTPS.

A autenticação de chave pública também é usada para autenticação mútua, que é quando os dois lados de uma comunicação se autenticam, em vez de apenas um cliente autenticar um servidor ou um serviço web autenticar um usuário. Dispositivos de Internet das Coisas (IoT) e endpoints de API às vezes usam esse tipo de autenticação.

Autenticação biométrica

Utilizável apenas para autenticar humanos, a autenticação biométrica envolve a verificação da identidade de alguém, verificando uma de suas características físicas em um banco de dados de suas características físicas conhecidas. O escaneamento facial ou o escaneamento de retina são exemplos desse tipo de autenticação.

O que é autorização (authz)?

A autorização determina o que um usuário autenticado pode ver e fazer. Pense no que acontece quando um cliente de banco faz login em sua conta on-line. Como sua identidade foi autenticada, ele pode ver o saldo de sua própria conta e o histórico de transações — mas não está autorizado a ver o de mais ninguém. Um gerente de banco, por outro lado, pode ter autorização para ver os dados financeiros de qualquer cliente.

Da mesma forma, uma pessoa pode ser um funcionário legítimo de uma empresa e pode ter verificado sua identidade, mas isso não significa que ela deva ter acesso a todos os arquivos e dados dessa empresa. Um funcionário de fora dos departamentos de RH ou contabilidade não deve poder ver a remuneração de todos, por exemplo.

O nível de autorização de um usuário determina o que ele tem permissão para fazer; portanto, um termo comum para ações autorizadas é "permissões". Outro termo para esse conceito é "privilégios".

Como funciona a autenticação?

As organizações usam algum tipo de solução de autorização para permitir ou bloquear ações do usuário. A solução geralmente sabe quais ações permitir ou bloquear com base em quem é o usuário; por esse motivo, a autenticação está intimamente ligada à autorização. Existem várias maneiras diferentes de determinar as permissões do usuário, incluindo as seguintes:

No controle de acesso baseado em função (RBAC), cada usuário recebe uma ou mais funções predeterminadas e cada função vem com um conjunto especifico de permissões.

No controle de acesso baseado em atributo (ABAC), os usuários recebem permissões com base em seus atributos ou nos atributos da ação que estão tentando executar.

No controle de acesso baseado em regras (também abreviado como RBAC), as ações são permitidas ou negadas com base em um conjunto de regras que se aplicam a todos os usuários, independentemente de sua função.

O que é OAuth?

O OAuth é um padrão técnico para passar autorização de um serviço para outro. Frequentemente usado para serviços em nuvem e aplicativos web, o OAuth permite que os usuários se autentiquem em um serviço e, em seguida, tenham sua autorização passada para outro serviço. Seu nível de autorização geralmente é determinado por um provedor de identidades (IdP), que é um serviço separado.

O OAuth possibilita o uso de serviços de login único (SSO), com os quais um usuário pode fazer login uma vez para acessar todos os seus aplicativos em nuvem. Sem o uso do OAuth, as permissões de um usuário teriam que ser configuradas separadamente em cada aplicativo.

Como a Cloudflare ajuda as empresas a implementar autenticação e autorização?

O Cloudflare Access é uma solução de autorização que permite ou bloqueia ações do usuário em aplicativos locais, auto-hospedados e SaaS. Ele se integra a qualquer IdP para autenticação. O Cloudflare Access também avalia a postura de segurança do dispositivo antes de conceder acesso, um recurso importante para implementar um modelo Zero Trust (saiba mais sobre Zero Trust).