Zum Hauptinhalt springen

OAuth-Authentifizierung

Diese Seite enthält Informationen zur Verwendung von OAuth in Immich.

Sie können app.immich:///oauth-callback nicht als gültige Weiterleitungs-URI festlegen? Siehe Mobile Redirect URI für eine alternative Lösung.

Übersicht

Immich unterstützt die Authentifizierung durch Dritte über OpenID Connect (OIDC), eine Identitätsschicht basierend auf OAuth2. OIDC wird von den meisten Identitätsanbietern unterstützt, darunter:

Voraussetzungen

Bevor Sie OAuth in Immich aktivieren, muss eine neue Client-Anwendung im Drittanbieter-Authentifizierungsserver konfiguriert werden. Obwohl die spezifische Einrichtung je nach Anbieter unterschiedlich ist, sollte der allgemeine Ansatz gleich sein.

  1. Neue (Client-)Anwendung erstellen

    1. Der Provider-Typ sollte OpenID Connect oder OAuth2 sein
    2. Der Client-Typ sollte Confidential sein
    3. Der Anwendungstyp sollte Web sein
    4. Der Grant-Typ sollte Authorization Code sein
  2. Weiterleitungs-URIs/Ursprünge konfigurieren

    Die Anmelde-Weiterleitungs-URIs sollten Folgendes beinhalten:

    • app.immich:///oauth-callback - für die Anmeldung mit OAuth aus der Mobile App
    • http://DOMAIN:PORT/auth/login - für die Anmeldung mit OAuth aus dem Web-Client
    • http://DOMAIN:PORT/user-settings - für das manuelle Verknüpfen von OAuth im Web-Client

    Weiterleitungs-URIs sollten alle Domains enthalten, die Sie für den Zugriff auf Immich verwenden werden. Einige Beispiele sind:

    Mobil

    • app.immich:///oauth-callback (Sie MÜSSEN dies hinzufügen, damit iOS- und Android-Apps ordnungsgemäß funktionieren)

    Localhost

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

    Lokale IP

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

    Hostname

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

OAuth aktivieren

Sobald eine neue OAuth-Client-Anwendung konfiguriert ist, kann Immich über die Administrations-Einstellungsseite konfiguriert werden, die im Web verfügbar ist (Administration -> Einstellungen).

EinstellungTypStandardwertBeschreibung
AktiviertbooleanfalseOAuth aktivieren/deaktivieren
Herausgeber-URLURL(erforderlich)Erforderlich. Selbstentdeckungs-URL für den Client (aus vorherigem Schritt)
Client-IDstring(erforderlich)Erforderlich. Client-ID (aus vorherigem Schritt)
Client-Geheimnisstring(erforderlich)Erforderlich. Client-Geheimnis (aus vorherigem Schritt)
Scopestringopenid email profileVollständige Liste der Bereiche, die mit der Anfrage gesendet werden (mit Leerzeichen getrennt)
SignaturalgorithmusstringRS256Der Algorithmus zur Signierung des ID-Tokens (Beispiele: RS256, HS256)
Speicher-Etikett-Anspruchstringpreferred_usernameAnspruchsmapping für die Speichermarkierung eines Benutzers¹
Rollenanspruchstringimmich_roleAnspruchsmapping für die Rolle eines Benutzers. (sollte "user" oder "admin" zurückgeben)¹
Speicher-Kontingent-Anspruchstringimmich_quotaAnspruchsmapping für den Speicher eines Benutzers¹
Standard-Speicher-Kontingent (GiB)number0Standardkontingent für Benutzer ohne Speicher-Kontingent-Anspruch (0 für unbegrenztes Kontingent eingeben)
SchaltflächentextstringAnmeldung mit OAuthText für die OAuth-Schaltfläche im Web
Automatische RegistrierungbooleantrueWenn aktiviert, wird ein Benutzer automatisch beim ersten Anmelden registriert
Automatischer StartbooleanfalseWenn aktiviert, wird die Anmeldeseite übersprungen und der OAuth-Anmeldeprozess automatisch gestartet
Mobile Weiterleitungs-URI-ÜberschreibungURL(leer)Alternative mobile Weiterleitungs-URI (Http(s))

:::Hinweis Anspruchsoptionen [1]

Anspruch wird nur bei der Erstellung eines Benutzers verwendet und danach nicht synchronisiert.

:::

Info

Die Herausgeber-URL sollte in etwa wie folgt aussehen und ein gültiges JSON-Dokument zurückgeben.

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

Der Teil .well-known/openid-configuration der URL ist optional und wird während der Entdeckung automatisch hinzugefügt.

Automatischer Start

Wenn der automatische Start aktiviert ist, wird der Benutzer von der Anmeldeseite automatisch zur OAuth-Autorisierungs-URL weitergeleitet, um sich mit OAuth anzumelden. Um erneut auf den Anmeldebildschirm zuzugreifen, verwenden Sie die Zurück-Schaltfläche des Browsers oder navigieren Sie direkt zu /auth/login?autoLaunch=0. Der automatische Start kann auch bei bestimmten Anforderungen aktiviert werden, indem Sie zu /auth/login?authLaunch=1 navigieren. Dies kann in Situationen nützlich sein, in denen Immich z. B. aus Nextcloud unter Verwendung der External sites-App und der oidc-App aufgerufen wird, sodass Benutzer direkt mit einer angemeldeten Instanz von Immich interagieren können.

Mobile Weiterleitungs-URI

Die Weiterleitungs-URI für die Mobile App ist app.immich:///oauth-callback, was ein Benutzerdefiniertes Schema ist. Wenn dieses benutzerdefinierte Schema eine ungültige Weiterleitungs-URI für Ihren OAuth-Anbieter ist, können Sie dies folgendermaßen umgehen:

  1. Richten Sie einen http(s)-Endpunkt ein, der Anfragen an app.immich:///oauth-callback weiterleitet
  2. Setzen Sie den neuen Endpunkt als gültige Weiterleitungs-URI bei Ihrem Anbieter auf die Whitelist.
  3. Geben Sie den neuen Endpunkt als Mobile Weiterleitungs-URI-Überschreibung in den OAuth-Einstellungen an.

Mit diesen Schritten sollten Sie OAuth von der Mobile App ohne eine benutzerdefinierte Schema-Weiterleitungs-URI verwenden können.

Info

Immich hat eine Route (/api/oauth/mobile-redirect), die bereits konfiguriert ist, um Anfragen an app.immich:///oauth-callback weiterzuleiten, und für Schritt 1 verwendet werden kann.

Beispielkonfiguration

Beispiel für Authentik

Beispiel für Authentik

Hier ist ein Beispiel für eine OAuth-Konfiguration für Authentik:

Konfiguration der autorisierten Weiterleitungs-URIs (Authentik OAuth2/OpenID-Anbieter)

Konfiguration von OAuth in den Immich-Systemeinstellungen

EinstellungWert
Herausgeber-URLhttps://example.immich.app/application/o/immich/.well-known/openid-configuration
Client-IDAFCj2rM1f4rps*****...
Client-Geheimnis0v89FXkQOWO****...
Scopeopenid email profile
SignaturalgorithmusRS256
Speicher-Etikettpreferred_username
Speicher-Kontingentimmich_quota
Standardkontingent (GiB)0 (0 für unbegrenztes Kontingent)
SchaltflächentextMit Authentik anmelden (optional)
Automatische RegistrierungAktiviert (optional)
Automatischer StartAktiviert (optional)
Mobile URI OverridesDeaktiviert
Mobile Redirect URI
Beispiel von Google

Beispiel von Google

Hier ist ein Beispiel für eine OAuth-Konfiguration für Google:

Konfiguration der autorisierten Weiterleitungs-URIs (Google-Konsole)

Konfiguration von OAuth in den Immich-Systemeinstellungen

EinstellungWert
Herausgeber-URLhttps://accounts.google.com
Client-ID7******...
Client SecretG******************OO
Scopeopenid email profile
Signing AlgorithmRS256
Storage Label Claimbevorzugter_benutzername
Storage Quota Claimimmich_quota
Default Storage Quota (GiB)0 (0 für unbegrenztes Kontingent)
Button TextMit Google anmelden (optional)
Auto RegisterAktiviert (optional)
Auto LaunchAktiviert
Mobile Redirect URI OverrideAktiviert (erforderlich)
Mobile Redirect URIhttps://example.immich.app/api/oauth/mobile-redirect