Saltar al contenido principal

Control de acceso

Aislamiento multi-tenant​

Percus es una plataforma multi-tenant. Cada organización es un tenant completamente aislado. Los usuarios, proyectos, templates y credenciales de API pertenecen a una única organización y nunca son visibles para los usuarios de otras organizaciones.

No existe estado compartido entre organizaciones a nivel de aplicación. El Identity Service y el Campaign Service aplican scoping por organización en todas las consultas.

Control de acceso basado en roles​

Cada usuario tiene exactamente un rol dentro de cada organización a la que pertenece. Los roles se asignan al momento de la invitación y pueden ser modificados por un OrganizationAdmin.

RolAlcanceQué puede hacer
ViewerOrgAcceso de solo lectura a proyectos, templates y canales
DeveloperOrgSubir y gestionar templates; ver todos los recursos
ProjectManagerOrgCrear proyectos, publicar templates, gestionar páginas de aterrizaje y credenciales de API
OrganizationAdminOrgControl total — todo lo anterior más invitar usuarios, cambiar roles y archivar proyectos
OwnerPlataformaRol interno de Percus; acceso a todas las organizaciones

Un usuario puede pertenecer a múltiples organizaciones con distintos roles en cada una.

Aplicación​

La autorización se aplica en la capa de API, no en el frontend. El frontend reenvía el rol del usuario mediante las cabeceras de solicitud X-Percus-Forwarded-Org-Role y X-Percus-Forwarded-System-Role. El backend valida estas contra el JWT de sesión antes de procesar cualquier mutación.

Las operaciones sensibles — crear proyectos, publicar templates, gestionar credenciales, archivar — requieren rol ProjectManager u OrganizationAdmin y devuelven 403 Forbidden si la verificación de rol falla.

Qué controlan los clientes​

ControlCómo
Quién tiene acceso a su organizaciónGestionado por su OrganizationAdmin mediante invitaciones
Asignación de rol por usuarioEl OrganizationAdmin puede cambiar roles en cualquier momento
Revocar accesoEl OrganizationAdmin puede desactivar a un usuario; los usuarios desactivados no pueden iniciar sesión
Ciclo de vida de credenciales de APIProjectManager+ puede crear y revocar credenciales por proyecto