Extensión Plesk para autenticación Single Sign-On mediante OpenID Connect (OIDC) con Authentik como Identity Provider.
Alternativa gratuita y de código abierto a las extensiones comerciales de OAuth/OIDC para Plesk.
- 🔐 Flujo Authorization Code + PKCE — El estándar más seguro para autenticación web
- 🎯 Soporte nativo para Authentik — Configuración simplificada con auto-discovery OIDC
- 🔑 Múltiples estrategias de mapeo — Por email, claim personalizado o grupos de Authentik
- 🛡️ Seguro por diseño — Validación JWT, protección CSRF, cifrado de secrets con pm_Crypt
- ⚙️ Panel de configuración integrado — Administración directamente desde el panel de Plesk
- 🔄 Login local siempre disponible — El login nativo de Plesk no se deshabilita
- 🌐 Multi-servidor — Un solo provider en Authentik, múltiples servidores Plesk
| Componente | Versión mínima |
|---|---|
| Plesk | Obsidian 18.0+ |
| PHP | 8.0+ |
| Composer | 2.0+ |
| Authentik | 2024.x+ |
# Instalar dependencias PHP
composer install --no-dev --optimize-autoloader
# Empaquetar la extensión
./scripts/build.shOpción A — Via panel Plesk:
- Ir a
Extensions→My Extensions→Upload Extension - Subir el archivo
dist/ext-oidc-authentik-X.Y.Z.zip
Opción B — Via CLI:
plesk bin extension --install-local /path/to/ext-oidc-authentik-X.Y.Z.zipOpción C — Deploy automático (multi-servidor):
./scripts/deploy.sh plesk-server.ejemplo.comVer la guía detallada en docs/authentik-setup.md.
- Ir al panel de Plesk →
Extensions→OIDC Login — Authentik SSO - Rellenar la URL de Authentik, Client ID y Client Secret
- Hacer clic en "Probar conexión" para verificar
- Activar el plugin
[Login Page de Plesk]
│
▼ Click "Continuar con Authentik"
[sso-init.php] → Genera PKCE → Redirige a Authentik
│
▼ Usuario se autentifica en Authentik
[callback.php] → Valida state/nonce → Intercambia code por tokens
│
▼ Valida JWT → Mapea usuario → Crea sesión Plesk
[Panel de Plesk]
PleskOidcAuthentik/
├── extension/ # Código fuente de la extensión Plesk
│ ├── meta.xml # Descriptor de la extensión
│ ├── plib/ # Lógica PHP
│ │ ├── hooks/ # Hooks de Plesk (login button, events)
│ │ ├── controllers/ # Controladores del panel de admin
│ │ ├── library/ # Librería OIDC core
│ │ ├── scripts/ # Scripts post-install/pre-uninstall
│ │ └── vendor/ # Dependencias Composer (bundled)
│ └── htdocs/
│ ├── public/ # Endpoints públicos (sso-init, callback)
│ ├── css/ # Estilos
│ └── js/ # JavaScript del panel
├── docs/ # Documentación
├── scripts/ # Scripts de build y deploy
└── composer.json # Dependencias PHP
- Guía de instalación en Plesk
- Configuración en Authentik
- Arquitectura técnica
- Estrategias de mapeo de usuarios
- Troubleshooting
Este plugin implementa las siguientes medidas de seguridad:
- PKCE (RFC 7636) — Protección contra code interception attacks
- State parameter — Protección CSRF en el callback
- Nonce — Prevención de token replay attacks
- Validación JWT — Verificación de firma con JWKS de Authentik
- pm_Crypt — Cifrado del client_secret en base de datos
- Session regeneration —
session_regenerate_id(true)tras autenticación
Las contribuciones son bienvenidas. Por favor:
- Fork del repositorio
- Crea una rama:
git checkout -b feature/mi-funcionalidad - Commit con mensaje descriptivo:
git commit -m "feat: añadir soporte para PKCE plain" - Push y abre un Pull Request
MIT License — Ver LICENSE para más detalles.
Esta extensión no está afiliada con Plesk ni con Authentik. Es un proyecto independiente de código abierto. Úsala bajo tu propia responsabilidad en entornos de producción; realiza siempre pruebas exhaustivas antes del despliegue.