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