RBAC e Grupos de Permissão
Modelo de acesso granular: 46 chaves de permissão organizadas em grupos temáticos. Cada usuário é atribuído a um único grupo de permissão que agrega o que ele pode ver e fazer.
Aberta em /permission-groups.
Presets prontos
Todo tenant novo recebe 5 grupos pré-configurados ao abrir a página pela primeira vez:
Admin
Fundador / TI sênior
Tudo, sem exceção
Operator
Analista de fleet
Operar devices, aplicar policies, ver relatórios. Não pode: wipe, editar billing, criar grupos, configurar SSO
Read-only
Stakeholder / auditor casual
Só *.view — inclui finance.view, trust_score.view
Help Desk
Suporte N1
Unlock, reset senha, remote view, reboot. Não edita policy, não remove device
Auditor
Compliance / SOX
View completo + compliance + audit log + export. Nunca muta
Grupos deletados podem ser recriados a qualquer momento com o botão "Reset defaults" — ele só reinsere os que estão faltando, não sobrescreve customizações.
Como as permissões estão organizadas
Dashboard
dashboard.view · reports.view · reports.export · trust_score.view · finance.view · finance.manage
Devices
devices.view / enroll / edit / remove / lock / reboot / reset_password / wipe / lost_mode / bulk_command / remote_access / broadcast · app_inventory.view · customfields.view · customfields.manage
Policies
policies.view / create / edit / delete / assign / rollback · managed_play.view · managed_play.manage
Perimeter
geofences.manage · alerts.view · alerts.manage · autoremediation.manage
Compliance
compliance.view · compliance.generate · lgpd.view · lgpd.export · lgpd.forget · approvals.decide
Platform
users.view · users.manage · groups.manage · sessions.manage_others · sso.manage · apikeys.view · apikeys.manage · branding.manage · smtp.manage · customdomain.manage · settings.manage
Integrations
scheduled_reports.view / manage · integrations.view · integrations.manage · marketplace.view · marketplace.request · saved_filters.manage
Access schedule por grupo
Cada grupo pode ter uma janela de horário permitido — dias da semana + hora inicial + hora final. Fora da janela, o login é bloqueado com código OUTSIDE_ACCESS_WINDOW.
Exemplo: Help Desk N1 só pode logar seg-sex, 08:00-18:00, GMT-3.
Sessão já ativa mantém acesso (não é kill-switch imediato).
Conditional Access por grupo
Extensão do access schedule com verificações finas:
Allowlist / blocklist de IP (CIDR ou IP puro)
Allowlist / blocklist de país
Trust Score mínimo do device
Obrigar MFA
Ver Security & Conditional Access.
Cascata de decisão em cada requisição
Quando o usuário abre uma tela ou clica num botão, o RMM checa em ordem:
Autenticação: o cookie de sessão / API key é válido?
Access schedule do grupo: estamos na janela permitida?
Conditional Access do grupo: IP / país / trust band / MFA batem?
Permissão específica: o grupo tem a chave que essa rota exige? (Ex.: apagar policy exige
policies.delete)
Cada checagem tem código de erro específico — o usuário vê exatamente por que foi bloqueado, sem ficar tentando adivinhar.
Atribuir usuário a grupo
Em /users, cada linha tem um dropdown com os grupos disponíveis. Salvar aplica imediatamente (a próxima requisição do usuário já usa o novo grupo).
Sem grupo atribuído + usuário legado com role='admin': ainda funciona (grandfather clause). Sem grupo E sem role: bloqueado com NO_GROUP_ASSIGNED.
Auditoria
Todo PERMISSION_DENIED é gravado no Audit Log com o usuário, permissão exigida e endpoint. Útil pra descobrir grupos mal configurados no dia-a-dia.
Atualizado
Isto foi útil?