Português (Brasil)
  • authz
  • authn
  • conceito

O que é AuthZ (Autorização)?

Explore a definição de AuthZ, AuthN vs AuthZ, como o AuthZ funciona e as melhores práticas de autorização.

Guamian
Guamian
Product & Design

O que é AuthZ e como é diferente de AuthN?

AuthZ é a abreviação de autorização. Autorização é um mecanismo separado de autenticação. Enquanto a autenticação identifica quem você é, a autorização determina se você pode acessar recursos específicos e quais ações pode realizar neles.

Em exemplos do mundo real, recursos podem incluir software, sistemas, documentos, pedidos e ativos. A autorização adiciona uma camada extra de controle, especificando quem pode acessar esses recursos e sob quais condições.

Como o AuthZ funciona?

Autorização é separada da autenticação, mas muitas vezes está conectada a ela. Por exemplo, protocolos padrão como OAuth 2.0, OIDC e SAML incorporam mecanismos de autorização com base em tokens.

Em um sistema de autorização baseado em tokens, um servidor de autorização concede um token de acesso aos usuários. Este token, que inclui permissões, determina se o usuário pode acessar determinados recursos.

Atribuir permissões diretamente aos usuários pode ser ineficiente, especialmente quando condições mais detalhadas são necessárias. Por exemplo, o acesso pode depender de circunstâncias específicas, como a localização do usuário, o que torna necessárias políticas de controle de acesso para uma melhor gestão de permissões.

Aqui está um fluxo passo a passo de alto nível de como a autorização funciona:

  1. Iniciar autenticação: O usuário entra selecionando um identificador e método, como usar um email e senha.
  2. Requisição de autorização: Após fazer login, o usuário solicita acesso a um recurso, incluindo detalhes como seu ID de usuário e papéis.
  3. Validação de controle de acesso: O sistema verifica a requisição contra políticas de autorização predefinidas, como regras baseadas em papéis ou atributos.
  4. Decisão de autorização: O sistema determina se concede ou nega acesso com base nas políticas e permissões.

Para entender o fluxo da requisição de autorização do OAuth 2.0 em detalhes, confira a requisição de autorização

Quais são os tipos de autorização?

Controle de acesso baseado em papéis e como funciona

Controle de Acesso Baseado em Papéis (RBAC) usa papéis para gerenciar acesso. Cada usuário é atribuído a um ou mais papéis predefinidos, e cada papel inclui um conjunto de permissões. A chave para o RBAC é entender a relação entre sujeitos (ou usuários), papéis e permissões.

Para entender como o Controle de Acesso Baseado em Papéis (RBAC) funciona, você precisa saber sobre:

  1. Sujeitos: Podem ser usuários ou entidades não humanas, como usuário ou aplicação de máquina-para-máquina.
  2. Papéis: Representam funções de trabalho ou responsabilidades. Ex: admin membro
  3. Permissões: Especificam quais ações são permitidas em recursos específicos, ex: ler: pedido.

RBAC-diagram.png

Controle de acesso baseado em atributos e como funciona

Controle de Acesso Baseado em Atributos (ABAC) é amplamente usado em autorização e suporta cenários mais complexos usando atributos específicos de uma entidade, além apenas dos papéis.

Por exemplo, uma empresa gerencia uma plataforma global de compartilhamento de documentos onde os funcionários precisam de acesso controlado a arquivos sensíveis com base em seu papel de trabalho, localização e nível de classificação do documento.

Os atributos podem ser projetados das seguintes formas:

  1. Atributos de usuário: Papel (ex.: “Gerente,” “Engenheiro”), localização (ex.: “EUA,” “Europa”).
  2. Atributos de recurso: Tipo de documento (ex.: “Relatório Financeiro,” “Arquivo de Design”), nível de classificação (ex.: “Confidencial”).
  3. Atributos de ambiente: Tempo de acesso (ex.: “Durante Horário de Trabalho”), tipo de dispositivo (ex.: “Laptop da Empresa”).

Há também outros modelos de controle de acesso, como o controle de acesso baseado em políticas (PBAC). Cada modelo tem suas forças e fraquezas, e a escolha do modelo depende do seu caso de uso e requisitos.

AuthZ casos de uso e exemplos

Software B2C

Software B2C muitas vezes requer papéis específicos com base nas necessidades dos negócios. Por exemplo, um aplicativo de gerenciamento de livraria pode incluir papéis com diferentes responsabilidades, como gerenciar recursos e serviços.

Aplicativo B2B multi-arrendatário

Aplicativos B2B muitas vezes usam uma arquitetura multi-arrendatária, onde cada arrendatário representa uma organização. Dentro da organização, papéis como administrador e membro são necessários. É aqui que a Autorização (AuthZ) desempenha um papel fundamental na gestão de usuários em nível organizacional, muitas vezes usando Controle de Acesso Baseado em Papéis (RBAC).

Autorização de máquina-para-máquina

Comunicação máquina-para-máquina acontece diretamente entre serviços sem interação humana. Por exemplo, chamando serviços de API. Muitas vezes envolve tokens (ex.: tokens de acesso OAuth 2.0) para garantir acesso seguro, dinâmico e granular.

Quais são as melhores práticas para AuthZ?

Aqui estão algumas melhores práticas para autorização (authZ) para garantir controle de acesso seguro e eficaz:

  • Princípio do menor privilégio

    Isso garante que o risco de acesso não autorizado ou danos por contas comprometidas seja minimizado. Usuários e sistemas devem acessar apenas os recursos e ações necessários para seu papel.

  • Empregar autorização baseada em token

    O controle de acesso baseado em token oferece mais flexibilidade e controle refinado enquanto adere a padrões abertos. Use tokens seguros (ex.: OAuth 2.0, JWTs) para conceder acesso com tempo limitado e escopo definido.

  • Auditar e monitorar regularmente

    Revisar regularmente logs de acesso e políticas de autorização é necessário para identificar anomalias ou permissões desatualizadas.

  • Aplicar separação de funções

    Comece implementando permissões refinadas, como definir ações e recursos específicos (ex.: ler, escrever, deletar). Ao criar papéis, use nomes de papéis claros e imponha a separação de funções para minimizar o risco de fraude ou erros por um único usuário.

  • Suporte a multi-arrendatário (se aplicável)

    Para sistemas multi-arrendatários, a isolação de arrendatários é importante. Combinando com controle de acesso baseado em papéis, você pode alcançar a separação dos recursos de dados, garantindo que os papéis adequados possam acessar recursos apenas dentro de seu arrendatário. Isso previne acesso acidental ou malicioso aos recursos de outros arrendatários.

  • Revogar acesso dinamicamente

    Ao projetar seu sistema AuthZ, assegure-se de que as permissões possam ser atualizadas ou revogadas imediatamente se as condições mudarem (ex.: atualizações de papéis, ou rescisão de emprego). Isso pode ser alcançado por meio de verificações dinâmicas de API, webhooks ou outros métodos. O objetivo é prevenir acesso não autorizado em tempo real.

Quais são as diferenças entre AuthZ (Autorização) vs Auth (Autenticação)?

A diferença entre autenticação e autorização reside em seu propósito e processo dentro da gestão de identidade e acesso.

AuthN (Autenticação) responde à pergunta, “Quem é você e qual identidade você possui?” É o processo de verificar a identidade de um usuário, serviço ou dispositivo. Autenticação assegura que a entidade tentando acessar um sistema ou recurso é genuína. Métodos comuns incluem senhas, biometria e autenticação de dois fatores (2FA). Por exemplo, quando você faz login em uma conta usando seu email e senha, o sistema confirma sua identidade por meio da autenticação.

AuthZ (Autorização) responde à pergunta, “O que você está autorizado a fazer?” É o processo de conceder ou negar acesso a recursos com base nas permissões ou papéis do usuário. A autorização ocorre após a autenticação e determina quais ações o usuário autenticado pode realizar. Por exemplo, após o login, um usuário administrador pode ter acesso para modificar configurações, enquanto um usuário comum pode apenas visualizá-las.

Em resumo, AuthN (autenticação) confirma a identidade, enquanto AuthZ (autorização) define acesso. A autenticação acontece primeiro, seguida pela autorização, para garantir uso seguro e apropriado dos recursos.

Construa AuthZ (Autorização) com Logto

Logto Cloud oferece serviços de autorização chave baseados em protocolos padrão aberto como OIDC, OAuth 2.0 e SAML. As funcionalidades incluem Controle de Acesso Baseado em Papéis, Organizações (Multi-Arrendatário) e Reivindicações de Tokens Personalizados para atender às suas necessidades de autorização de diversas perspectivas.