Saltar al contenido principal

Autenticación OAuth

Esta página contiene detalles sobre cómo usar OAuth en Immich.

consejo

¿No puedes configurar app.immich:///oauth-callback como un URI de redirección válido? Consulta URI de Redirección Móvil para una solución alternativa.

Visión General

Immich admite autenticación de terceros a través de OpenID Connect (OIDC), una capa de identidad construida sobre OAuth2. OIDC es compatible con la mayoría de los proveedores de identidad, incluyendo:

Requisitos Previos

Antes de habilitar OAuth en Immich, se necesita configurar una nueva aplicación cliente en el servidor de autenticación de terceros. Aunque los detalles de esta configuración varían dependiendo del proveedor, el enfoque general debe ser el mismo.

  1. Crear una nueva Aplicación (Cliente)

    1. El tipo de Proveedor debe ser OpenID Connect o OAuth2
    2. El tipo de Cliente debe ser Confidencial
    3. El tipo de Aplicación debe ser Web
    4. El tipo de Concesión debe ser Código de Autorización
  2. Configurar URIs/Orígenes de Redirección

    Los URIs de redirección de inicio de sesión deben incluir:

    • app.immich:///oauth-callback - para iniciar sesión con OAuth desde la App Móvil
    • http://DOMINIO:PUERTO/auth/login - para iniciar sesión con OAuth desde el Cliente Web
    • http://DOMINIO:PUERTO/user-settings - para vincular manualmente OAuth en el Cliente Web

    Los URIs de redirección deben contener todos los dominios que utilizarás para acceder a Immich. Algunos ejemplos incluyen:

    Móvil

    • app.immich:///oauth-callback (Debes incluir esto para que las apps móviles en iOS y Android funcionen correctamente)

    Localhost

    • http://localhost:2283/auth/login
    • http://localhost:2283/user-settings

    IP Local

    • http://192.168.0.200:2283/auth/login
    • http://192.168.0.200:2283/user-settings

    Nombre del Host

    • https://immich.example.com/auth/login
    • https://immich.example.com/user-settings

Habilitar OAuth

Una vez que tengas configurada la nueva aplicación cliente OAuth, puedes configurar Immich desde la página de Configuración de Administración, disponible en la web (Administración -> Configuraciones).

ConfiguraciónTipoPredeterminadoDescripción
HabilitadobooleanfalseHabilitar/deshabilitar OAuth
URL del EmisorURL(requerido)Requerido. URL de auto-descubrimiento para el cliente (del paso anterior)
ID del Clientestring(requerido)Requerido. ID del Cliente (del paso anterior)
Secreto del Clientestring(requerido)Requerido. Secreto del Cliente (del paso anterior)
Alcancestringopenid email profileLista completa de alcances a enviar con la solicitud (separados por espacio)
Algoritmo de FirmastringRS256El algoritmo utilizado para firmar el token de id (ejemplos: RS256, HS256)
Reclamación de Etiqueta de Almacenamientostringpreferred_usernameMapeo de reclamación para la etiqueta de almacenamiento del usuario¹
Reclamación de Rolstringimmich_roleMapeo de reclamación para el rol del usuario. (debe devolver "user" o "admin")¹
Reclamación de Cuota de Almacenamientostringimmich_quotaMapeo de reclamación para el almacenamiento del usuario¹
Cuota Predeterminada de Almacenamiento (GiB)number0Cuota predeterminada para el usuario sin reclamación de almacenamiento (Ingresa 0 para cuota ilimitada)
Texto del BotónstringIniciar sesión con OAuthTexto para el botón de OAuth en la web
Registro AutomáticobooleantrueCuando está habilitado, registrará automáticamente a un usuario la primera vez que inicie sesión
Inicio AutomáticobooleanfalseCuando está habilitado, omitirá la página de inicio de sesión y comenzará automáticamente el proceso de inicio de sesión OAuth
Anulación del URI de Redirección MóvilURL(vacío)URI de redirección móvil http(s) alternativa
Opciones de Reclamación [1]

La reclamación sólo se utiliza al crear un usuario y no se sincroniza después de eso.

información

La URL del Emisor debería ser algo como lo siguiente, y devolver un documento json válido.

  • https://accounts.google.com/.well-known/openid-configuration
  • http://localhost:9000/application/o/immich/.well-known/openid-configuration

La parte .well-known/openid-configuration de la URL es opcional y se agregará automáticamente durante el descubrimiento.

Inicio Automático

Cuando el Inicio Automático está habilitado, la página de inicio de sesión redirigirá automáticamente al usuario a la URL de autorización OAuth para iniciar sesión con OAuth. Para acceder nuevamente a la pantalla de inicio de sesión, utiliza el botón de retroceso del navegador, o ve directamente a /auth/login?autoLaunch=0. El Inicio Automático también se puede habilitar caso por caso al navegar a /auth/login?authLaunch=1. Esto puede ser útil en situaciones donde Immich es llamado desde, por ejemplo, Nextcloud utilizando la app de Sitios Externos y la app oidc para permitir a los usuarios interactuar directamente con una instancia iniciada de Immich.

URI de Redirección Móvil

El URI de redirección para la app móvil es app.immich:///oauth-callback, que es un Esquema Personalizado. Si este esquema personalizado no es válido como URI de redirección para tu Proveedor OAuth, puedes evitar esto haciendo lo siguiente:

  1. Configura un endpoint http(s) para redirigir solicitudes a app.immich:///oauth-callback
  2. Incluye en la lista blanca el nuevo endpoint como un URI de redirección válido con tu proveedor.
  3. Especifica el nuevo endpoint como la Anulación del URI de Redirección Móvil, en las configuraciones de OAuth.

Con estos pasos en marcha, deberías poder usar OAuth desde la App Móvil sin un URI de redirección con esquema personalizado.

información

Immich tiene una ruta (/api/oauth/mobile-redirect) que ya está configurada para redirigir solicitudes a app.immich:///oauth-callback, y puede ser utilizada para el paso 1.

Ejemplo de Configuración

Ejemplo de Authentik

Ejemplo de Authentik

Aquí tienes un ejemplo de OAuth configurado para Authentik:

Configuración de URIs de redirección autorizados (Proveedor de OAuth2/OpenID de Authentik)

Configuración de OAuth en las Configuraciones del Sistema Immich

ConfiguraciónValor
URL del Emisorhttps://example.immich.app/application/o/immich/.well-known/openid-configuration
ID del ClienteAFCj2rM1f4rps*************lCLEum6hH9...
Secreto del Cliente0v89FXkQOWO**************mprbvXD549HH6s1iw...
Alcanceopenid email profile
Algoritmo de FirmaRS256
Reclamación de Etiqueta de Almacenamientopreferred_username
Reclamación de Cuota de Almacenamientoimmich_quota
Cuota Predeterminada de Almacenamiento (GiB)0 (0 para cuota ilimitada)
Texto del BotónInicia sesión con Authentik (opcional)
Registro AutomáticoHabilitado (opcional)
Inicio AutomáticoHabilitado (opcional)
Anulación del URI de Redirección MóvilDeshabilitada
URI de Redirección Móvil
Ejemplo de Google

Ejemplo de Google

Aquí tienes un ejemplo de OAuth configurado para Google:

Configuración de URIs de redirección autorizados (Consola de Google)

Configuración de OAuth en las Configuraciones del Sistema Immich

ConfiguraciónValor
URL del Emisorhttps://accounts.google.com
ID del Cliente7******************vuls.apps.googleusercontent.com
Client SecretG******************OO
Scopeopenid correo electrónico perfil
Signing AlgorithmRS256
Storage Label Claimnombre_de_usuario_preferido
Storage Quota Claimcuota_immich
Default Storage Quota (GiB)0 (0 para cuota ilimitada)
Button TextIniciar sesión con Google (opcional)
Auto RegisterHabilitado (opcional)
Auto LaunchHabilitado
Mobile Redirect URI OverrideHabilitado (requerido)
Mobile Redirect URIhttps://example.immich.app/api/oauth/mobile-redirect