Skip to main content
O DEVMOB utiliza um modelo de Role-Based Access Control (RBAC) para controlar autorização. Cada usuário autenticado possui um conjunto de permissions, montado a partir das roles e de claims derivados. Esse conjunto decide quais ações ele pode executar.

Conceitos Fundamentais

Permission

Uma Permission é a unidade de autorização. Ela representa uma capacidade específica no formato action:resource:
create:trip       → pode criar viagens
read:order        → pode visualizar pedidos
update:vehicle    → pode editar veículos
delete:driver     → pode remover motoristas

Role

Uma Role é um conjunto nomeado de permissions. O RoleType define como ela pode ser usada:
RoleTypeUso
INTERNALBackOffice, fora de qualquer organização
ENVIRONMENTGlobal, reutilizável por organizações
ORGANIZATIONCustomizada por uma organização específica
Role "Gerente de Frota" (Company X):
  - create:vehicle
  - update:vehicle
  - delete:vehicle
  - read:vehicle
  - create:driver
  - update:driver
  - read:driver

Membership

O vínculo Membership conecta um User a uma Role. Para ENVIRONMENT e ORGANIZATION, a Membership também carrega a Organization do escopo. Para INTERNAL, a Membership não possui organização. Apenas vínculos ACTIVE entram no Profile.

Claim de acesso

Um claim de acesso é uma permission derivada do vínculo que habilita o usuário a entrar em uma API surface. Os claims access:ops, access:bko e access:driver liberam o ingresso nas superfícies correspondentes e são avaliados antes das permissions de negócio.
ClaimDerivado quando
access:bkoO usuário possui Membership ACTIVE com Role INTERNAL
access:opsO usuário possui Membership ACTIVE em organização com Role ENVIRONMENT ou ORGANIZATION
access:driverO usuário possui vínculo ativo como motorista em uma empresa

Como Funciona na Prática

O conjunto de permissions do usuário é a união de quatro fontes: A checagem em cada requisição segue o fluxo abaixo. A organização ativa vem do perfil autenticado:
O mesmo usuário pode ter a role “Administrador” em uma cooperativa e “Operador” em uma empresa afiliada. O Profile resolve no máximo uma organização ativa por vez, e as permissions são avaliadas no contexto dessa organização.

Entidades

EntidadeDescrição
RoleConjunto nomeado de permissions com tipo INTERNAL, ENVIRONMENT ou ORGANIZATION.
PermissionPar action:resource que representa uma capacidade específica (catálogo estático).
RolePermissionVínculo entre roles e suas permissions.
MembershipVínculo entre User, Organization e Role.

Roles e Permissions em Detalhe

Catálogo completo de permissions, escopo de roles, claims derivados e atribuição via Membership.