Security, Auth and RBAC
Security, Auth and RBAC
Section titled “Security, Auth and RBAC”Objetivo
Section titled “Objetivo”A camada de segurança inicial do Standard cria contratos reutilizáveis para autenticação, tenant context, RBAC, upload security, prompt security e auditabilidade segura. A implementação fica em packages/security e é integrada ao apps/api-gateway.
Modelo de Autenticação
Section titled “Modelo de Autenticação”O MVP define AuthContext com:
actor_idactor_typetenant_idorganization_idsrolespermissionsauth_methodsession_idapi_key_idissued_atexpires_attrace_id
Auth methods modelados:
jwtapi_keycloudflare_accessservice_tokenmock_dev
No MVP, integramos o provedor definitivo usando o Standard Native Auth Plugin, que assume JWT, Auth Session, Database Persistence (Drizzle) e a hierarquia oficial do sistema, além da gestão madura via o plugin API Keys.
Tenant Resolution
Section titled “Tenant Resolution”TenantResolver resolve o tenant por:
- header interno
x-standard-tenant-id; - route param
tenantId; - placeholders futuros para JWT, API key e hostname.
Regra: tenant_id vindo do body nunca é suficiente isoladamente. Divergência entre body/contexto deve ser bloqueada por TenantGuard.
PolicyEngine avalia:
- auth context presente;
- tenant context presente quando a permissão não é global;
- tenant do auth compatível com tenant resolvido;
- permissões requeridas pela rota/operação.
Roles iniciais:
owneradminmemberauditorsystem
As permissões iniciais cobrem tenant, organization, assessment, documents, KB, SCF, SoA, Gap, Maturity, POA&M, Reports, Agents e Admin.
Tenant Isolation
Section titled “Tenant Isolation”Toda operação de cliente deve carregar tenant_id. Para assessment, o backend valida que o assessment pertence ao tenant resolvido antes de acessar dados.
TenantGuard fornece:
- validação de
tenant_iddivergente no body; - validação de organization/assessment context;
- bloqueio de cross-tenant access.
Authorization Flow
Section titled “Authorization Flow”- Resolver
trace_id. - Resolver tenant context.
- Resolver auth context.
- Executar RBAC se a rota declarar
permissions. - Aplicar rate limit placeholder em rotas sensíveis.
- Registrar audit event seguro.
- Executar handler.
Approval Authorization
Section titled “Approval Authorization”Criação de approval events exige permissão específica:
soa:approvegap:approvematurity:approvepoam:approvereport:approve
O Assessment Engine continua responsável por validar approval gates e bloquear bypass.
Upload Security
Section titled “Upload Security”FileSecurityService consolida política de upload:
- tamanho máximo;
- extensões permitidas;
- MIME types permitidos;
- content hash;
- neutralização de path traversal via filename normalization;
- quarantine flag em rejeição;
- malware scan placeholder.
O serviço de ingestão continua validando assinatura e tipo do arquivo antes de processar.
Prompt Injection Defenses
Section titled “Prompt Injection Defenses”PromptSecurityService marca conteúdo de KB/documentos como untrusted_evidence.
Regras:
- conteúdo recuperado não pode alterar system/developer instructions;
- conteúdo recuperado não pode mudar tool allowlist;
- KB não é fonte normativa SCF;
- agents devem manter evidência separada de instruções;
- outputs passam schema validation.
Agent Runtime Security
Section titled “Agent Runtime Security”ToolUsePolicyService bloqueia tools não permitidas, external calls por default e approval tools por default. O Agent Runtime existente segue com allowlist por contrato funcional e guardrails contra final findings ou mappings oficiais.
API Security
Section titled “API Security”O API Gateway agora suporta:
- auth middleware;
- tenant middleware;
- RBAC middleware;
- rate limit placeholder;
- secure error handling;
- audit metadata com auth method e roles.
Rotas críticas com permissões explícitas incluem upload/reprocess, KB index/search, Agent Runtime start/list, workflow start/cancel/resume/signals, report download e SCF admin import.
Admin Protection
Section titled “Admin Protection”/api/v1/admin/scf/import-runs exige scf:import. Cloudflare Access/Zero Trust deve proteger consoles e ambientes administrativos quando houver deployment público.
Audit Logs Seguros
Section titled “Audit Logs Seguros”Eventos preparados:
- auth/permission denied;
- API requests;
- rate limit placeholder checks;
- uploads/reprocess;
- KB search/index;
- agent run;
- workflow start/cancel/resume/signals;
- report download;
- admin imports.
Não logar documento completo, chunks completos, prompt completo, tokens, secrets, API keys ou output sensível integral.
Maturidade do MVP Enterprise-Grade
Section titled “Maturidade do MVP Enterprise-Grade”- Auth real (Session e DB Persistence): Utiliza Standard Native Auth (
@standard-native-auth/api-keyencapsulados no PostgreSQL pelo Schema Drizzle). - Membership context: Standard Native Auth provê multi-tenant assignment e organizações associadas nas claims.
- RBAC Ativo: Funcionalidades seguras integradas via
rbac.middleware.tspara checarcontext.auth.roles. - API Keys / Revogações: Plugin nativo que interage com as tabelas na DB garantindo segurança transacional.
- Toda lógica in-memory simulada foi deprecada na fase Enterprise-Grade e desativada nas rotas de produção operando na porta 3000 do Gateway.