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.
Explore a definição de AuthZ, AuthN vs AuthZ, como o AuthZ funciona e as melhores práticas de autorização.
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.
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:
Para entender o fluxo da requisição de autorização do OAuth 2.0 em detalhes, confira a requisição de autorização
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:
usuário ou aplicação de máquina-para-máquina.admin membroler: pedido.
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:
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.
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.
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).
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.
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.
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.
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.