Skip to main content

RBAC | ABAC

  • RBAC | ABAC

RBAC (Role-Based Access Control) vs. ABAC (Attribute-Based Access Control)

RBAC (Role-Based Access Control) e ABAC (Attribute-Based Access Control) são dois modelos de controle de acesso amplamente utilizados para gerenciar permissões e autenticação em sistemas.

1. RBAC - Role-Based Access Control (Controle de Acesso Baseado em Funções)

No RBAC, as permissões são atribuídas a funções e os usuários recebem essas funções. O modelo RBAC define o acesso com base nas responsabilidades atribuídas aos usuários em uma organização.

  • Funções: Representam um conjunto de permissões.
  • Permissões: São as ações ou operações permitidas para uma função específica (ex.: ler, escrever, excluir).
  • Usuários: São atribuídos a uma ou mais funções e, por consequência, têm as permissões das funções atribuídas.

Como funciona o RBAC:

  1. Definem-se funções como "Administrador", "Usuário", "Gerente", etc.
  2. Associam-se permissões a essas funções.
  3. Os usuários recebem funções e herdam as permissões das funções atribuídas.
Exemplo de RBAC:

Se uma função de "Administrador" tiver permissões para editar e excluir arquivos, qualquer usuário com a função de "Administrador" poderá executar essas ações.


2. ABAC - Attribute-Based Access Control (Controle de Acesso Baseado em Atributos)

O ABAC vai além do RBAC e usa atributos para controlar o acesso. Os atributos podem ser de usuários, objetos, ações ou o contexto. Em vez de apenas funções, o ABAC considera uma combinação de atributos para tomar decisões de controle de acesso.

  • Atributos de Usuário: Como cargo, departamento, localização, etc.
  • Atributos de Objeto: Tipo de arquivo, nível de confidencialidade, etc.
  • Atributos de Ação: Operações como ler, escrever, editar, excluir.
  • Atributos de Contexto: Data, hora, localização geográfica, tipo de dispositivo usado.

Como funciona o ABAC:

  1. Definem-se políticas baseadas em uma combinação de atributos.
  2. Essas políticas determinam quem pode acessar o quê, dependendo dos atributos do usuário, do recurso e do contexto.
Exemplo de ABAC:

Uma regra poderia ser que "Funcionários do departamento financeiro podem acessar arquivos de relatório apenas durante o horário comercial e usando um dispositivo corporativo". Isso seria muito difícil de modelar usando RBAC.


Diferenças Principais entre RBAC e ABAC

  • RBAC: O controle de acesso é baseado em funções. Usuários são atribuídos a funções, e essas funções têm permissões predefinidas.

  • ABAC: O controle de acesso é baseado em atributos. Esses atributos podem ser do usuário, do recurso ou do contexto, tornando o ABAC muito mais flexível.

CaracterísticaRBACABAC
BaseFunçõesAtributos
GranularidadeMédia (funções agrupam permissões)Alta (pode definir regras complexas)
ComplexidadeRelativamente simples de implementarMais complexo devido à combinação de atributos
FlexibilidadeLimitado (baseado apenas em funções)Muito flexível (combina diversos atributos)
ManutençãoMais fácil em ambientes pequenosRequer mais atenção à gestão de políticas