Seguridad y permisos
La seguridad es el eje central de Senso MCP. La solución se basa en los mecanismos de Joomla y no introduce ninguna puerta trasera: el asistente solo puede hacer aquello que sus permisos le permiten.
Tres capas de control
Cada llamada a una herramienta atraviesa tres filtros sucesivos que se acumulan:
- Los interruptores del componente — una política global del sitio. Una herramienta desactivada en la administración de Senso MCP no existe para nadie, independientemente de la cuenta. Del mismo modo, el modo global de solo lectura elimina todas las herramientas de escritura.
- El ACL de Joomla — los permisos de la cuenta conectada. Cada herramienta está vinculada a una acción y a un componente de Joomla, exactamente igual que en la administración.
- Los scopes de OAuth — el alcance concedido a una conexión determinada. Durante la autorización, el usuario elige los ámbitos de herramientas (contenido, medios, menús…) que confía a ese asistente, y solo puede marcar aquellos a los que sus permisos de Joomla le dan acceso.
Por tanto, una herramienta solo se puede utilizar si está activada en el sitio, permitida por el ACL de la cuenta y cubierta por los scopes de la conexión.
Alineación con el ACL de Joomla
Las herramientas MCP respetan el ACL (lista de control de acceso) de Joomla. Una cuenta que no tiene un permiso en la administración tampoco lo tiene a través de MCP: la herramienta no aparece en la lista transmitida al asistente y una llamada forzada se rechaza con el mensaje « Insufficient permission ». La correspondencia sigue el nombre de la herramienta:
| Herramientas | Acción de Joomla requerida | Ejemplo |
|---|---|---|
create_* | core.create en el componente | crear un artículo: core.create en com_content |
update_* | core.edit | modificar un módulo: core.edit en com_modules |
delete_* | core.delete | eliminar una categoría |
set_*_state, reorder_* | core.edit.state | publicar, despublicar, reordenar |
| consultas de extensiones | core.manage en com_installer | listar las actualizaciones disponibles |
| herramientas de caché | core.manage en com_cache | vaciar la caché |
Los grupos estándar de Joomla son suficientes: un Editor o un Publicador solo puede actuar sobre el contenido, mientras que un Administrador tiene acceso a casi todas las herramientas.
Consultas filtradas
El control no se limita a las escrituras. Las búsquedas y consultas de artículos y categorías solo devuelven los elementos publicados dentro de los niveles de acceso de la cuenta, salvo que esta disponga de permisos de edición. Los datos que revelan información sensible están reservados a las cuentas autorizadas: historial de versiones (borradores, papelera), parámetros de los módulos y ajustes de YOOtheme (scripts, CSS).
Herramientas reservadas al Super Usuario
Algunas herramientas tienen un alcance que va más allá del contenido y afecta al sitio completo. Al igual que en Joomla, requieren el permiso global core.admin, es decir, pertenecer al grupo Super Usuarios:
- instalar, actualizar o desinstalar una extensión;
- modificar un archivo de plantilla;
- modificar los ajustes del propio Senso MCP.
Un Administrador no puede verlas. Esta decisión es deliberada: estas acciones pueden inyectar código o scripts en todas las páginas, por lo que requieren el mismo nivel de confianza que el acceso al servidor.
El complemento YOOtheme Pro, en cambio, ya no forma parte de esta lista: sus operaciones de escritura (páginas, plantillas y ajustes) siguen ahora el ACL del componente correspondiente — com_content para las páginas y sus relaciones, com_templates para las plantillas, los ajustes y las instantáneas—, de modo que un Administrador puede gestionar el constructor sin una cuenta de Super Usuario.
¿Es necesario ser Super Usuario?
No. Una cuenta ordinaria es suficiente para la inmensa mayoría de los usos. Elija el grupo de Joomla que corresponda a la necesidad: redacción con el grupo Editor o Publicador, gestión habitual con el grupo Administrador, y reserve una cuenta de Super Usuario únicamente para las operaciones con extensiones y la edición directa de archivos de plantilla.
Para una conexión mediante un token de API de Joomla (en lugar de OAuth), la cuenta también debe tener el permiso API Login (core.login.api) y no estar bloqueada.
Nunca se expone ninguna contraseña
Senso MCP nunca transmite una contraseña al asistente. La autenticación se basa en tokens de OAuth o de API, y las herramientas de gestión de usuarios no manipulan ni devuelven contraseñas.
Alcance de las herramientas
Usted mantiene el control del alcance: cada plugin activado añade herramientas, cada plugin desactivado las retira y cada herramienta tiene su propio interruptor. Las herramientas se dividen entre lectura (consulta) y escritura (modificación): active únicamente las que necesite.
Buenas prácticas
- cree una cuenta por uso (un asistente, una automatización), aplicando el principio de mínimo privilegio;
- sirva siempre el sitio mediante HTTPS;
- active únicamente los plugins y las herramientas que sean realmente útiles;
- conceda a cada conexión solo los scopes que necesite;
- revoque el acceso en cuanto deje de ser necesario.