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¶
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:
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:
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:
Exemplos:
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.