Pular para conteúdo

Role-Based Access Control (RBAC)

Objetivo

O módulo RBAC é responsável pelo controle de autorização da CoreFlow Platform.

Seu objetivo é determinar quem pode acessar quais recursos, quais operações podem ser executadas e em qual empresa (Tenant).

Toda autorização da plataforma deverá utilizar exclusivamente este módulo.


Responsabilidades

O módulo deverá fornecer:

  • Papéis (Roles)
  • Permissões (Permissions)
  • Grupos
  • Perfis
  • Escopos
  • Herança de permissões
  • Permissões por empresa
  • Permissões por módulo
  • Permissões por funcionalidade
  • Permissões por operação

Arquitetura

                  RBAC


        ┌───────────┼───────────┐

        │           │           │

      Users      Companies   Authentication



   Todos os Produtos

Modelo Conceitual

erDiagram

USER ||--o{ USER_ROLE : possesses

ROLE ||--o{ ROLE_PERMISSION : contains

PERMISSION ||--o{ ROLE_PERMISSION : assigned

COMPANY ||--o{ USER_ROLE : tenant

Conceitos

Permission

Representa uma ação executável.

Exemplos:

crm.leads.view

crm.leads.create

crm.leads.update

crm.leads.delete

erp.products.export

Role

Representa um conjunto de permissões.

Exemplos:

  • Administrador
  • Comercial
  • Financeiro
  • RH
  • Diretor

User Role

Relaciona:

  • Usuário
  • Papel
  • Empresa

Um mesmo usuário poderá possuir papéis diferentes em empresas distintas.


Hierarquia

Exemplo:

Administrador


Gerente


Supervisor


Operador


Consulta

Papéis superiores herdam permissões dos inferiores quando configurado.


Escopo

Toda permissão deverá possuir escopo.

Exemplos:

  • Global
  • Empresa
  • Filial
  • Equipe
  • Próprio Usuário

Fluxo de Autorização

sequenceDiagram

participant User

participant Auth

participant RBAC

participant API

User->>Auth: JWT

Auth->>RBAC: Validar Permissões

RBAC-->>API: Permitido / Negado

API-->>User: Resposta

Convenção

Formato oficial:

produto.recurso.ação

Exemplos:

crm.contacts.view

crm.contacts.update

finance.accounts-payable.create

erp.inventory.transfer

Operações Padrão

Todo recurso deverá possuir:

  • View
  • Create
  • Update
  • Delete
  • Export
  • Import
  • Approve
  • Cancel

Quando aplicável.


APIs

GET    /api/v1/rbac/roles/

POST   /api/v1/rbac/roles/

PATCH  /api/v1/rbac/roles/{id}/

DELETE /api/v1/rbac/roles/{id}/

GET    /api/v1/rbac/permissions/

GET    /api/v1/rbac/users/{id}/permissions/

Auditoria

Registrar:

  • Criação de papéis
  • Alteração de permissões
  • Inclusão de usuários
  • Remoção de usuários
  • Alteração de escopo
  • Aprovações administrativas

Segurança

Obrigatório:

  • Validação em toda requisição
  • Isolamento por empresa
  • Cache controlado
  • Revalidação após alterações
  • Auditoria completa

Integrações

Integra-se com:

  • Authentication
  • Users
  • Companies
  • Audit
  • Todos os Produtos

Regras de Negócio

  • Nenhum usuário possuirá permissões diretas.
  • Toda permissão será concedida através de Roles.
  • Toda Role pertence a uma empresa.
  • Usuários poderão possuir múltiplas Roles.
  • Alterações de permissões invalidam caches de autorização.

Testes Obrigatórios

  • Criação de Roles
  • Associação de Permissões
  • Associação de Usuários
  • Validação de Escopo
  • Multiempresa
  • Herança
  • Auditoria
  • Cache

Anti-patterns

É proibido:

  • Permissões diretamente no usuário
  • Verificações hardcoded
  • Bypass de autorização
  • Roles globais sem controle
  • Duplicação de permissões

Objetivo Final

Disponibilizar um mecanismo único, flexível, auditável e escalável de autorização para todos os produtos da CoreFlow Platform, garantindo segurança, isolamento entre empresas e governança de acesso.