217 lines
5.8 KiB
Markdown
217 lines
5.8 KiB
Markdown
# 🚀 Guía de Instalación - Extensión Authentik SSO - Forclus.NET
|
|
|
|
## 📋 Requisitos Previos
|
|
|
|
- Paymenter instalado y funcionando
|
|
- PHP 8.0 o superior
|
|
- Laravel 10+
|
|
- Acceso a la base de datos
|
|
- Instancia de Authentik configurada
|
|
|
|
## 📦 Instalación
|
|
|
|
### Método 1: Instalación Automática (Recomendado)
|
|
|
|
1. **Descargar la extensión**:
|
|
|
|
```bash
|
|
# Descargar el archivo Authentik.zip
|
|
wget https://tu-servidor.com/Authentik.zip
|
|
```
|
|
|
|
2. **Extraer en el directorio correcto**:
|
|
|
|
```bash
|
|
cd /var/www/paymenter/extensions/Others/
|
|
unzip Authentik.zip
|
|
```
|
|
|
|
3. **Ejecutar el script de instalación**:
|
|
|
|
```bash
|
|
cd /var/www/paymenter
|
|
php extensions/Others/Authentik/install.php
|
|
```
|
|
|
|
4. **Activar desde el panel**:
|
|
- Ve a **Administración > Extensiones**
|
|
- Busca **"Authentik SSO - Forclus.NET"**
|
|
- Haz clic en **"Activar"** (la vista de login se modificará automáticamente)
|
|
|
|
### Método 2: Instalación Manual
|
|
|
|
1. **Extraer la extensión**:
|
|
|
|
```bash
|
|
cd /var/www/paymenter/extensions/Others/
|
|
unzip Authentik.zip
|
|
```
|
|
|
|
2. **Configurar manualmente**:
|
|
- Ve a **Administración > Extensiones**
|
|
- Busca **"Authentik SSO - Forclus.NET"**
|
|
- Haz clic en **"Instalar"**
|
|
- Luego **"Activar"**
|
|
|
|
## ⚙️ Configuración
|
|
|
|
### 1. Configurar Authentik
|
|
|
|
En tu instancia de Authentik:
|
|
|
|
1. **Crear una aplicación OAuth2/OpenID**:
|
|
|
|
- Ve a **Applications > Create**
|
|
- Selecciona **OAuth2/OpenID Provider**
|
|
- Configura los siguientes parámetros:
|
|
|
|
2. **URLs de redirección**:
|
|
|
|
- **Authorization URL**: `https://tu-paymenter.com/oauth/authentik`
|
|
- **Callback URL**: `https://tu-paymenter.com/oauth/authentik/callback`
|
|
|
|
3. **Scopes requeridos**:
|
|
|
|
- `openid`
|
|
- `email`
|
|
- `profile`
|
|
|
|
4. **Copiar credenciales**:
|
|
- **Client ID**
|
|
- **Client Secret**
|
|
- **Base URL** (ej: `https://authentik.tudominio.com`)
|
|
|
|
### 2. Configurar en Paymenter
|
|
|
|
1. **Ve a Administración > Extensiones > Authentik SSO**
|
|
|
|
2. **Configura los parámetros**:
|
|
|
|
- ✅ **Authentik SSO Enabled**: Activar
|
|
- 🔑 **Client ID**: Tu Client ID de Authentik
|
|
- 🔐 **Client Secret**: Tu Client Secret de Authentik
|
|
- 🌐 **Base URL**: URL base de tu instancia Authentik
|
|
|
|
3. **Opciones avanzadas**:
|
|
- ✅ **Auto-crear usuarios**: Crear automáticamente usuarios de Authentik
|
|
- ❌ **Requerir usuario existente**: Solo usuarios ya existentes en Paymenter
|
|
- ❌ **Forzar solo Authentik**: Ocultar formulario de login normal
|
|
|
|
## 🧪 Pruebas
|
|
|
|
### 1. Probar la configuración
|
|
|
|
```bash
|
|
cd /var/www/paymenter
|
|
php extensions/Others/Authentik/test_extension.php
|
|
```
|
|
|
|
### 2. Probar el login
|
|
|
|
1. Ve a la página de login de Paymenter
|
|
2. Deberías ver el botón **"Iniciar sesión con Authentik"**
|
|
3. Haz clic en el botón
|
|
4. Serás redirigido a Authentik
|
|
5. Después del login, serás redirigido de vuelta a Paymenter
|
|
|
|
## 🔧 Solución de Problemas
|
|
|
|
### Error: "ERR_TOO_MANY_REDIRECTS"
|
|
|
|
Si experimentas bucles de redirección:
|
|
|
|
```bash
|
|
# Desactivar temporalmente el modo "force Authentik only"
|
|
php extensions/Others/Authentik/disable_force_mode.php
|
|
```
|
|
|
|
### Error: "Vista de login no modificada"
|
|
|
|
Si la vista no se modifica automáticamente:
|
|
|
|
```bash
|
|
# Restaurar la vista original
|
|
php extensions/Others/Authentik/restore_login_view.php
|
|
```
|
|
|
|
### Error: "Configuración inválida"
|
|
|
|
Verifica que:
|
|
|
|
- ✅ Client ID esté configurado
|
|
- ✅ Client Secret esté configurado
|
|
- ✅ Base URL esté configurado y sea accesible
|
|
- ✅ URLs de redirección estén configuradas correctamente en Authentik
|
|
|
|
## 📁 Estructura de Archivos
|
|
|
|
```
|
|
Authentik/
|
|
├── Authentik.php # Clase principal de la extensión
|
|
├── config.php # Configuración de la extensión
|
|
├── install.php # Script de instalación
|
|
├── uninstall.php # Script de desinstalación
|
|
├── test_extension.php # Script de pruebas
|
|
├── disable_force_mode.php # Desactivar modo forzado
|
|
├── restore_login_view.php # Restaurar vista original
|
|
├── README.md # Documentación en francés
|
|
├── README_ES.md # Documentación en español
|
|
├── INSTALACION.md # Esta guía
|
|
├── FORCE_AUTHENTIK_ONLY.md # Documentación del modo forzado
|
|
├── routes/
|
|
│ └── web.php # Rutas de la extensión
|
|
├── Http/
|
|
│ └── Controllers/
|
|
│ └── AuthentikController.php
|
|
├── Providers/
|
|
│ └── AuthentikProvider.php
|
|
├── Middleware/
|
|
│ └── ForceAuthentikOnly.php
|
|
├── Livewire/
|
|
│ └── AuthentikLoginOverride.php
|
|
├── resources/
|
|
│ ├── views/
|
|
│ │ └── login-override.blade.php
|
|
│ └── lang/
|
|
│ ├── fr/messages.php # Traducciones en francés
|
|
│ ├── en/messages.php # Traducciones en inglés
|
|
│ └── es/messages.php # Traducciones en español
|
|
└── scripts/
|
|
└── modify_login_view.php # Script para modificar la vista
|
|
```
|
|
|
|
## 🆘 Soporte
|
|
|
|
Si tienes problemas:
|
|
|
|
1. **Revisa los logs** de Laravel: `storage/logs/laravel.log`
|
|
2. **Ejecuta el script de prueba**: `php extensions/Others/Authentik/test_extension.php`
|
|
3. **Verifica la configuración** de Authentik
|
|
4. **Consulta la documentación** de Authentik
|
|
|
|
## 🔄 Actualización
|
|
|
|
Para actualizar la extensión:
|
|
|
|
1. **Hacer backup** de la configuración actual
|
|
2. **Desactivar** la extensión desde el panel
|
|
3. **Reemplazar** los archivos con la nueva versión
|
|
4. **Reactivar** la extensión
|
|
5. **Verificar** que todo funciona correctamente
|
|
|
|
## 🗑️ Desinstalación
|
|
|
|
Para desinstalar completamente:
|
|
|
|
```bash
|
|
cd /var/www/paymenter
|
|
php extensions/Others/Authentik/uninstall.php
|
|
```
|
|
|
|
Esto eliminará:
|
|
|
|
- ✅ La extensión de la base de datos
|
|
- ✅ Todos los parámetros de configuración
|
|
- ✅ Restaurará la vista de login original
|
|
- ✅ Limpiará todos los archivos de backup
|