Passer au contenu principal

Authentification OAuth

Cette page contient des informations sur l'utilisation de OAuth dans Immich.

astuce

Impossible de définir app.immich:///oauth-callback comme URI de redirection valide ? Consultez URI de redirection mobile pour une solution alternative.

Vue d'ensemble

Immich prend en charge l'authentification de tiers via OpenID Connect (OIDC), une couche d'identité construite sur OAuth2. OIDC est pris en charge par la plupart des fournisseurs d'identité, notamment :

Prérequis

Avant d'activer OAuth sur Immich, une nouvelle application cliente doit être configurée dans le serveur d'authentification tiers. Bien que les détails de cette configuration varient selon le fournisseur, l'approche générale reste la même.

  1. Créez une nouvelle application (Client)

    1. Le type Provider doit être OpenID Connect ou OAuth2
    2. Le type Client doit être Confidential
    3. Le type Application doit être Web
    4. Le type Grant doit être Authorization Code
  2. Configurez les URIs/Origines de redirection

    Les URIs de redirection de connexion doivent inclure :

    • app.immich:///oauth-callback - pour se connecter avec OAuth à partir de l'Application Mobile
    • http://DOMAIN:PORT/auth/login - pour se connecter avec OAuth à partir du Client Web
    • http://DOMAIN:PORT/user-settings - pour lier manuellement OAuth dans le Client Web

    Les URIs de redirection doivent inclure tous les domaines que vous utiliserez pour accéder à Immich. Voici quelques exemples :

    Mobile

    • app.immich:///oauth-callback (Vous DEVEZ inclure ceci pour que les applications mobiles iOS et Android fonctionnent correctement)

    Localhost

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

    IP locale

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

    Nom d'hôte

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

Activer OAuth

Une fois que vous avez configuré une nouvelle application cliente OAuth, Immich peut être configuré via la page des paramètres d'administration, accessible sur le web (Administration -> Paramètres).

ParamètreTypePar DéfautDescription
ActivébooleanfalseActiver/désactiver OAuth
URL du fournisseurURL(obligatoire)Obligatoire. URL de découverte pour le client (étape précédente)
ID du Clientstring(obligatoire)Obligatoire. ID du client (étape précédente)
Secret du Clientstring(obligatoire)Obligatoire. Secret du client (étape précédente)
Scopestringopenid email profileListe complète des scopes pour la requête (séparés par des espaces)
Algorithme de signaturestringRS256Algorithme utilisé pour signer le token d'identité (exemples : RS256, HS256)
Réclamation pour étiquette de stockagestringpreferred_usernameMapping de réclamation pour l'étiquette de stockage de l'utilisateur¹
Réclamation pour rôlestringimmich_roleMapping de réclamation pour le rôle de l'utilisateur. (retourne "user" ou "admin")¹
Réclamation pour quota de stockagestringimmich_quotaMapping de réclamation pour le stockage de l'utilisateur¹
Quota de stockage par défaut (GiB)number0Quota par défaut pour les utilisateurs sans quota de stockage (Entrer 0 pour illimité)
Texte du boutonstringSe connecter avec OAuthTexte pour le bouton OAuth sur le web
Inscription automatiquebooleantrueLorsque activé, inscrit automatiquement l'utilisateur lors de sa première connexion
Lancement automatiquebooleanfalseLorsque activé, saute la page de connexion et lance automatiquement le processus OAuth
Remplacement URI de redirection mobileURL(vide)Alternative http(s) pour l'URI de redirection mobile
Options de réclamation [1]

La réclamation est utilisée uniquement lors de la création de l'utilisateur et n'est pas synchronisée après.

info

L'URL du fournisseur doit ressembler à ce qui suit et retourner un document JSON valide.

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

La partie .well-known/openid-configuration de l'URL est facultative et sera automatiquement ajoutée lors de la découverte.

Lancement Automatique

Lorsqu'il est activé, la page de connexion redirigera automatiquement l'utilisateur vers l'URL d'autorisation OAuth pour qu'il puisse se connecter. Pour accéder à nouveau à l'écran de connexion, utilisez le bouton précédent du navigateur, ou naviguez directement vers /auth/login?autoLaunch=0. Le lancement automatique peut également être activé par demande en naviguant vers /auth/login?authLaunch=1, ce qui peut être utile dans des situations où Immich est appelé depuis par exemple Nextcloud via l'application Sites externes et l'application oidc, permettant ainsi aux utilisateurs d'interagir directement avec une instance connectée d'Immich.

URI de redirection mobile

L'URI de redirection pour l'application mobile est app.immich:///oauth-callback, qui est un Schéma personnalisé. Si ce schéma personnalisé est un URI de redirection invalide pour votre fournisseur OAuth, voici une solution temporaire :

  1. Configurez un point de terminaison http(s) pour transférer les requêtes vers app.immich:///oauth-callback.
  2. Ajoutez ce point de terminaison dans la liste blanche des URIs de redirection valides auprès de votre fournisseur.
  3. Spécifiez ce point de terminaison comme Remplacement URI de redirection mobile, dans les paramètres OAuth.

Avec ces étapes en place, vous devriez pouvoir utiliser OAuth depuis l'Application Mobile sans un URI de redirection basé sur un schéma personnalisé.

info

Immich possède une route (/api/oauth/mobile-redirect) déjà configurée pour transmettre les requêtes vers app.immich:///oauth-callback, et peut être utilisée pour l'étape 1.

Exemple de Configuration

Exemple avec Authentik

Exemple avec Authentik

Voici un exemple de configuration OAuth pour Authentik :

Configuration des URIs de redirection autorisées (Authentik OAuth2/Provider OIDC)

Configuration OAuth dans les Paramètres Système d'Immich

ParamètreValeur
URL du fournisseurhttps://example.immich.app/application/o/immich/.well-known/openid-configuration
ID du ClientAFCj2rM1f4rps************lCLEum6hH9...
Secret du Client0v89FXkQOWO***********mprbvXD549HH6s1iw...
Scopeopenid email profile
Algorithme de signatureRS256
Réclamation pour étiquette de stockagepreferred_username
Réclamation pour quota de stockageimmich_quota
Quota par défaut (En GiB)0 (0 pour quota illimité)
Texte du boutonConnection avec Authentik (optionnel)
Inscription automatiqueActivé (optionnel)
Lancement automatiqueActivé (optionnel)
Remplacement URI mobileDésactivé
URI de redirection mobile
Exemple avec Google

Exemple avec Google

Voici un exemple de configuration OAuth pour Google :

Configuration des URIs de redirection autorisées (Console Google)

Configuration OAuth dans les Paramètres Système d'Immich

ParamètreValeur
URL du fournisseurhttps://accounts.google.com
ID du Client7********************vuls.apps.googleusercontent.com
Secret ClientG******************OO
Portéeopenid email profile
Algorithme de SignatureRS256
Réclamation Étiquette Stockagepreferred_username
Réclamation Quota de Stockageimmich_quota
Quota de Stockage par Défaut (GiB)0 (0 pour quota illimité)
Texte du BoutonConnectez-vous avec Google (facultatif)
Inscription AutomatiqueActivée (facultatif)
Lancement AutomatiqueActivé
Remplacement URI de Redirection MobileActivé (obligatoire)
URI de Redirection Mobilehttps://example.immich.app/api/oauth/mobile-redirect