This page contains details about using OAuth in Immich.
:::tip
Unable to set app.immich:/
as a valid redirect URI? See Mobile Redirect URI for an alternative solution.
:::
Immich supports 3rd party authentication via OpenID Connect (OIDC), an identity layer built on top of OAuth2. OIDC is supported by most identity providers, including:
Before enabling OAuth in Immich, a new client application needs to be configured in the 3rd-party authentication server. While the specifics of this setup vary from provider to provider, the general approach should be the same.
Create a new (Client) Application
OpenID Connect
or OAuth2
Confidential
Web
Authorization Code
Configure Redirect URIs/Origins
The Sign-in redirect URIs should include:
app.immich:/
- for logging in with OAuth from the Mobile Apphttp://DOMAIN:PORT/auth/login
- for logging in with OAuth from the Web Clienthttp://DOMAIN:PORT/user-settings
- for manually linking OAuth in the Web ClientRedirect URIs should contain all the domains you will be using to access Immich. Some examples include:
Mobile
app.immich:/
(You MUST include this for iOS and Android mobile apps to work properly)Localhost
http://localhost:2283/auth/login
http://localhost:2283/user-settings
Local 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
)Once you have a new OAuth client application configured, Immich can be configured using the Administration Settings page, available on the web (Administration -> Settings).
Setting | Type | Default | Description |
---|---|---|---|
Enabled | boolean | false | Enable/disable OAuth |
Issuer URL | URL | (required) | Required. Self-discovery URL for client (from previous step) |
Client ID | string | (required) | Required. Client ID (from previous step) |
Client secret | string | (required) | Required. Client Secret (previous step) |
Scope | string | openid email profile | Full list of scopes to send with the request (space delimited) |
Button text | string | Login with OAuth | Text for the OAuth button on the web |
Auto register | boolean | true | When true, will automatically register a user the first time they sign in |
Mobile Redirect URI Override | URL | (empty) | Http(s) alternative mobile redirect URI |
:::info The Issuer URL should look something like the following, and return a valid json document.
https://accounts.google.com/.well-known/openid-configuration
http://localhost:9000/application/o/immich/.well-known/openid-configuration
The .well-known/openid-configuration
part of the url is optional and will be automatically added during discovery.
:::
The redirect URI for the mobile app is app.immich:/
, which is a Custom Scheme. If this custom scheme is an invalid redirect URI for your OAuth Provider, you can work around this by doing the following:
app.immich:/
Mobile Redirect URI Override
, in the OAuth settings.With these steps in place, you should be able to use OAuth from the Mobile App without a custom scheme redirect URI.
:::info
Immich has a route (/api/oauth/mobile-redirect
) that is already configured to forward requests to app.immich:/
, and can be used for step 1.
:::
Here's an example of OAuth configured for Authentik: