Um rápido tutorial para RBAC e ABAC

RBAC (Role Base Access Control)

O controle de acesso baseado em função, definido pelo acrônimo em inglês RBAC (Role Base Access Control) é uma das metodologias mais populares empregadas no gerenciamento de acesso orientado pelo mandamento de privilégio mínimo.

Integra, portanto, a estrutura de autorização (e não a de autenticação), verificando a compatibilidade de direitos de uma credencial de acesso em relação ao objeto acionado e ao uso que dele se pretenda fazer.

Este modelo é empregado em cima de uma estrutura organizacional que precisa possuir funções de serviço claramente demarcadas. Como na clássica estrutura departamental, em que normalmente se distribuem os funcionários e demais membros da força de trabalho.

Mas ele pode também admitir a demarcação de funções de clientes e usuários externos, e seus respectivos direitos, numa perspectiva mais ampla de controle de privilégios que entenda estes segmentos como elementos classificáveis da estrutura funcional e, portanto, passíveis de serem enquadrados nas políticas de privilégio.

Uma vantagem do RBAC está na simplificação da imposição de políticas a grandes quantidades de usuários, uma vez que possibilita a padronização dos processos de atribuição de direitos e restrições. Por exemplo, determinando que todos os funcionários da contabilidade possam acessar o sistema fiscal e o faturamento, mas tenham vedado o acesso aos sistemas de marketing e suprimentos.

Ou que todos os funcionários de vendas possam acessar o estoque, mas não o sistema de RH, contabilidade, suporte etc. O mesmo valendo para a aplicação de hierarquias, como o atrelamento dos direitos de acesso e modificação de objetos de acordo com o status funcional (gerentes, diretores, vice-presidentes), assim como a universalização de direitos elementares para a base como um todo (por exemplo, o acesso ao email empresarial para todos os funcionários do escritório).

Fora da esfera das funções fixas da força de trabalho, o controle de acesso por funções pode ser usado, por exemplo, para conceder direitos de acesso nivelado para grupos heterogêneos e multifuncionais de colaboradores escalados para um projeto, obra ou campanha.

Ou ainda, saindo-se do ambiente administrativo para a segregação de funções aplicada a grupos específicos de clientes, na qual um perfil de clientes VIP pode ter seus direitos ampliados para uma área de ofertas especiais.

Em qualquer tipo de implementação, o RBAC pode considerar diferentes aspectos da política de acesso que irão definir o que o usuário pode ver, o que ele pode fazer, o que ele pode extrair, o que ele pode acrescentar, remover… e até mesmo o tempo de acesso que lhe é permitido em uma sessão, a partir do perfil funcional atrelado à tabela de direitos.   

ABAC, gerenciamento granular e por contexto

O Controle de Acesso Baseado em Atributos (ABAC) representa um modelo granular, diferente do paradigma de blocos funcionais do RBAC, permitindo assim a definição de políticas de autorização mais flexíveis, além de um gerenciamento refinado.

Tal como está expresso na definição do acrônimo, o ABAC faz o balizamento de permissões de acordo com características (atributos) intercambiáveis que comparecem em uma sessão de acesso específica.

Assim, ele consegue ajustar “a quente” os níveis de concessão de direitos, trazendo um padrão mais moderno de autorização, e mais sintonizado com complexidade do tráfego de requisições na nuvem híbrida.

A combinação dessas variáveis, avaliadas na autorização, inclui os atributos do sujeito, como seus dados cadastrais, ou características a ele associadas pelos sistemas de coleta de dados analíticos, como idade presumida, perfil de consumo, hábitos de navegação e outros.

Elementos estes que a ferramenta de ABAC explora para cotejar com os atributos do objeto, verificando se a solicitação requer acesso a um arquivo crítico, a uma API ou a uma aplicação de serviço não crítica.

E incluindo-se aí, ainda, os atributos ambientais, relativos ao contexto da requisição, por exemplo, para verificar que se o usuário em questão é um vendedor que, e eventualmente, está procurando pela primeira vez uma interação com o ERP. E daí, partindo para verificar que outros elementos contextuais poderiam justificar (ou assinalar como duvidosa) esta solicitação de acesso.

O ABAC funciona, em síntese, como um executor de lógicas de permissão que recebe a solicitação de acesso, correlaciona o conjunto de atributos relacionados à identidade, ao recurso e ao evento em curso e submete seu pacote de correlações ao repositório de políticas de acesso. Tudo isto segundo o princípio booleano “if-then”.

Seu sistema contextual de decisão para a concessão de acesso é indubitavelmente mais ágil, mais esperto e mais abrangente para lidar com o ambiente de risco sistêmico atual, e para executar os mandamentos “zero trust”.

Suas três características centrais são a granularidade, o dinamismo analítico e a medição adaptativa da aplicação de direitos de acesso. São características que posicionam o ABAC como uma das convenções bem acabadas da IAM, com aptidão para responder a demandas de gerenciamento inerentes às novas leis da sociedade digital (LGPD, KyC etc).  E também como modelo de autorização para suportar o tratamento de acesso passwordless. 

E então, quer bater um papo e compartilhar nossos casos de uso?