El poder se diseña en una tabla, no en un botón
Cuando solo hay «usuario» y «admin», el admin puede con todo y cualquier error de uno es un desastre total. La forma profesional es una matriz de roles y permisos: filas = roles, columnas = acciones, y en cada casilla decides sí o no. Esa matriz, y no una sensación, es lo que le pides a la IA que implemente.
Una matriz para un gestor de tareas
| Rol | Ver tarea | Crear | Editar la suya | Editar la ajena | Borrar | Ver a todos |
|---|---|---|---|---|---|---|
| Invitado | Sí (asignadas) | No | No | No | No | No |
| Miembro | Sí (proyecto) | Sí | Sí | No | Solo la suya | No |
| Manager | Sí | Sí | Sí | Sí | Sí | Sí |
| Admin | Sí | Sí | Sí | Sí | Sí | Sí (y gestiona roles) |
Tres principios que evitan el abuso de poder
La matriz hace visible dónde puede colarse un abuso
Prompt con la matriz
Implementa control por roles con esta matriz EXACTA (ningun rol obtiene permiso extra sin que lo diga):\n- Invitado: solo VER tareas asignadas.\n- Miembro: ver/crear/editar SUS tareas; borrar solo las suyas.\n- Manager: ademas editar/ver tareas ajenas y del proyecto.\n- Admin: todo lo anterior + gestionar roles.\n\nReglas:\n- la comprobacion se hace en el SERVIDOR en cada endpoint, leyendo el rol del token\n- si un endpoint pide permiso que el rol no tiene, responde 403\n- al final, generame la lista de endpoints y que rol necesita cada uno para que yo la audite.Prueba
Un «Invitado» logra borrar una tarea llamando directo al endpoint DELETE aunque su rol no lo permite. ¿Qué falló en la implementación?
Dar al rol «admin» el mayor número posible de permisos es una buena práctica.
Detecta el diseño de permisos defectuoso
Revisas una matriz de roles que propuso una IA. Señala la decisión que rompe el principio de mínima autoridad:
- El Miembro solo puede editar sus propias tareas.
- El Manager puede ver todas las tareas del proyecto.
- Todos los roles, incluido Invitado, pueden borrar cualquier tarea «por si acaso».
- El Admin gestiona los roles además de lo demás.
Identifica la linea con error.
Dibuja la matriz de roles y permisos de tu proyecto (3-4 roles, tus acciones reales). Conviértela en criterio de aceptación y pide a la IA que la aplique en el servidor y te la devuelva para auditar.