Configurando túneles de Cloudflare e Immich para utilizar OAuth

Advertencia: Este artículo tiene más de 365 días.

Immich permite habilitar el inicio de sesión mediante OAuth para todos los usuarios, lo cual proporciona una capa adicional de seguridad. En este artículo te mostraré cómo lograrlo utilizando Cloudflare Zero Trust.

📌 Requisito previo: Debes tener configurado un proveedor de autenticación (OAuth) dentro de Cloudflare Zero Trust. Si aún no lo has hecho, puedes seguir esta guía paso a paso para proteger el acceso a servicios expuestos en tu servidor.

Configura un túnel en Cloudflare

Dirígete a Cloudflare Zero Trust → Redes y crea un nombre de host público en Networks → Tunnels. Asegúrate de que este túnel no tenga habilitado el control de acceso.

Creación de túnel en Cloudflare Zero Trust

Configuración del nombre de host público del túnel

Túnel configurado sin control de acceso

Crea una aplicación en Cloudflare Access

Entra en Cloudflare Access y crea una aplicación SaaS yo la he llamado immich.

Creación de aplicación SaaS en Cloudflare Access

Selecciona OpenID Connect (OIDC) como método de autenticación.

Selección de OpenID Connect como método de autenticación

En la configuración, selecciona los siguientes scopes:

    openid, email, profile

Define las URL de redirección. Estas deben incluir tanto direcciones locales como el dominio público que configuraste:

    https://immich.tudominio.com/api/oauth/mobile-redirect
    http://IP_local:2283/auth/login
    http://IP_local:2283/user-settings
    https://immich.tudominio.com/auth/login
    https://immich.tudominio.com/user-settings

🔧 Importante: Reemplaza IP_local con la IP local de tu servidor Immich y immich.tudominio.com con tu dominio real.

Configuración de scopes y URLs de redirección en Cloudflare Access

Desactiva la opción Clave de prueba para intercambio de código (PKCE).

Desactivación de PKCE en la configuración de OAuth

Guarda las claves generadas (URL del emisor, ID del Cliente y Secreto del cliente), ya que las necesitarás más adelante.

Marca la opción Mostrar la aplicación en el Iniciador de aplicaciones. Puedes usar el logo de Immich para personalizar el icono:
https://raw.githubusercontent.com/immich-app/immich/main/design/immich-logo.png

Configuración de marca y logo en la aplicación de Cloudflare Access

Guardado de aplicación OAuth en Cloudflare

Edita la aplicación y, en la pestaña Configuración de experiencias, define la URL del Iniciador de aplicaciones con el dominio configurado:

       https://immich.tudominio.com/

Configuración de URL del iniciador de aplicaciones en Cloudflare

Define una política de acceso

Crea una política como esta:

  • Nombre: acceso mediante email

  • Medida: Permitir

  • Regla adicional: selecciona tu proveedor de autenticación bajo Métodos de inicio de sesión

Creación de política de acceso en Cloudflare Access

Política de acceso configurada en Cloudflare

Configura OAuth en Immich

Ingresa con un usuario administrador.

Dirígete a Administración → Configuraciones → OAuth Authentication.

Introduce los datos copiados previamente:

  • URL del emisor (Issuer URL)
  • ID del cliente (Client ID)
  • Secreto del cliente (Client Secret)

Haz clic en Guardar.

Configuración de OAuth en Immich con datos de Cloudflare

Prueba el acceso

Cierra sesión para verificar el nuevo flujo de autenticación.

Pantalla de cierre de sesión en Immich

Redirección a Cloudflare Access para autenticación OAuth

Inicio de sesión exitoso con OAuth en Immich

Fuerza el uso de OAuth (opcional)

Si todo funciona correctamente, puedes deshabilitar el acceso con contraseña:

Ve a Ajustes → Parámetros de autenticación.

Desactiva la opción Contraseña de acceso para obligar a todos los usuarios a iniciar sesión con OAuth.

Desactivación de contraseña de acceso en ajustes de Immich

¡Y listo! Ahora tu instancia de Immich está protegida con autenticación OAuth a través de Cloudflare.

Espero que te haya gustado, pasa un gran día 🐧


Referencias