Describe el problema/error/pregunta
Después de cambiar de Microsoft a Nextcloud, hemos intentado configurar un flujo de trabajo usando n8n para sincronizar calendarios de Outlook/Teams con nuestro Nextcloud Calendar (la aplicación destacada) y nos enfrentamos al siguiente problema:
Para leer eventos de y escribir eventos en nuestros calendarios de Nextcloud, la única opción que conocemos es usar solicitudes http con Autenticación Básica, lo que parece poco práctico, ya que requeriría recopilar las credenciales de inicio de sesión de cada usuario.
¿Alguien conoce una forma de evitar este problema? Por ejemplo, ¿un usuario administrador que tenga permisos de lectura/escritura en el calendario de otros usuarios?
Atentamente,
Frederic
¿Cuál es el mensaje de error (si lo hay)?
Por favor comparte tu flujo de trabajo
(Selecciona los nodos en tu lienzo y usa los atajos de teclado CMD+C/CTRL+C y CMD+V/CTRL+V para copiar y pegar el flujo de trabajo.)
Comparte la salida devuelta por el último nodo
Información sobre tu configuración de n8n
- Versión de n8n:
- Base de datos (predeterminado: SQLite):
- Configuración n8n EXECUTIONS_PROCESS (predeterminado: own, main):
- Ejecutando n8n a través de (Docker, npm, n8n cloud, aplicación de escritorio):
- Sistema operativo:
¡Hola @FredericDomke! ¡Bienvenido!
Dos puntos separados aquí. Primero, Basic Auth para CalDAV no significa recopilar las contraseñas de inicio de sesión reales de nadie: las contraseñas de la aplicación Nextcloud son tokens por usuario, por dispositivo creados en Configuración personal > Seguridad > Dispositivos y sesiones, y se autentican a través de Basic Auth exactamente como un cliente CalDAV normal. Son revocables individualmente y nunca exponen la contraseña de la cuenta, por lo que es la forma segura de lo que ya estás haciendo. El punto final del calendario es la ruta DAV, no el nodo de Nextcloud (que solo cubre archivos y usuarios): https://your-nextcloud/remote.php/dav/calendars///
Segundo, no hay una credencial de administrador integrada que lea y escriba de forma transparente el calendario personal de cada usuario. La forma compatible de ejecutar esto desde una única credencial es compartiendo el calendario con una cuenta de servicio:
- Crea un usuario Nextcloud dedicado, por ejemplo n8n-sync.
- Haz que cada usuario comparta su calendario con n8n-sync y marca “puede editar” (o mueve los calendarios que sincronizas a calendarios compartidos/de grupo que posea la cuenta de servicio).
- Genera una contraseña de aplicación para n8n-sync.
- En n8n, usa una única credencial HTTP Request (Basic Auth, usuario n8n-sync + esa contraseña de aplicación) y accede a /remote.php/dav/calendars/n8n-sync// tanto para lecturas (REPORT/PROPFIND) como para escrituras (PUT).
Esto te da una credencial que cubre cada calendario compartido, sin contraseñas por usuario que recopilar.