Перейти к основному содержимому

Аутентификация OAuth

На этой странице содержится информация о использовании OAuth в Immich.

совет

Не можете установить app.immich:///oauth-callback как допустимый URI перенаправления? См. Mobile Redirect URI для альтернативного решения.

Обзор

Immich поддерживает аутентификацию через сторонние сервисы с использованием OpenID Connect (OIDC), слоя идентификации, построенного поверх OAuth2. OIDC поддерживается большинством провайдеров идентификации, включая:

Предварительные условия

Прежде чем включить OAuth в Immich, необходимо настроить новое клиентское приложение на сервере сторонней аутентификации. Хотя детали настройки могут различаться в зависимости от провайдера, общий подход должен быть одинаковым.

  1. Создайте новое (Client) приложение

    1. Тип Provider должен быть OpenID Connect или OAuth2
    2. Тип Client должен быть Confidential
    3. Тип Application должен быть Web
    4. Тип Grant должен быть Authorization Code
  2. Настройте Redirect URIs/Origins

    Sign-in redirect URIs должны включать:

    • app.immich:///oauth-callback - для входа через OAuth из мобильного приложения
    • http://DOMAIN:PORT/auth/login - для входа через OAuth из веб-клиента
    • http://DOMAIN:PORT/user-settings - для ручной привязки OAuth в веб-клиенте

    URI перенаправления должны содержать все домены, которые вы будете использовать для доступа к Immich. Некоторые примеры:

    Мобильные

    • app.immich:///oauth-callback (Вы ДОЛЖНЫ включить это для корректной работы приложений на iOS и Android)

    Локальный хост

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

    Локальный IP

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

    Имя хоста

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

Включение OAuth

После настройки нового клиентского приложения OAuth можно настроить Immich через страницу настроек Администрирования, доступную в вебе (Администрирование -> Настройки).

НастройкаТипЗначение по умолчаниюОписание
ВключеноbooleanfalseВключить/выключить OAuth
URL издателяURL(required)Обязательно. URL для автоматического обнаружения клиента (из предыдущего шага)
ID клиентаstring(required)Обязательно. ID клиента (из предыдущего шага)
Секрет клиентаstring(required)Обязательно. Секрет клиента (из предыдущего шага)
Scopestringopenid email profileПолный список доступов для отправки с запросом (разделенный пробелами)
Алгоритм подписиstringRS256Алгоритм, используемый для подписи токена id (например: RS256, HS256)
Требование для метки хранилищаstringpreferred_usernameСопоставление с требованием для метки хранилища пользователя¹
Требование для ролиstringimmich_roleСопоставление с требованием для роли пользователя. (должно возвращать "user" или "admin")¹
Требование для квоты хранилищаstringimmich_quotaСопоставление с требованием для хранилища пользователя¹
Квота хранилища по умолчанию (ГиБ)number0Квота по умолчанию для пользователя без требования квоты (Введите 0 для безлимитной квоты)
Текст кнопкиstringLogin with OAuthТекст кнопки OAuth на вебе
Автоматическая регистрацияbooleantrueПри включении автоматически регистрирует пользователя при первом входе
Авто запускbooleanfalseПри включении автоматически пропускает страницу входа и начинает процесс входа через OAuth
Переопределение Mobile Redirect URIURL(empty)Http(s) альтернативный URI перенаправления для мобильных устройств
Опции требования [1]

Требование используется только при создании пользователя и не синхронизируется после этого.

информация

URL издателя должен выглядеть примерно так и возвращать корректный документ json.

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

Часть URL .well-known/openid-configuration является необязательной и будет автоматически добавлена при обнаружении.

Авто запуск

Когда функция авто запуска включена, страница входа автоматически перенаправляет пользователя на URL авторизации OAuth для входа через OAuth. Чтобы снова получить доступ к экрану входа, используйте кнопку "Назад" в браузере или перейдите непосредственно на /auth/login?autoLaunch=0. Авто запуск может быть включен также на основе запроса, перейдя на /auth/login?authLaunch=1, это может быть полезно в ситуациях, когда Immich вызывается, например, из Nextcloud с использованием приложения External sites и приложения oidc, чтобы предоставить пользователям возможность взаимодействовать с авторизованной инстанцией Immich.

Mobile Redirect URI

URI перенаправления для мобильного приложения — app.immich:///oauth-callback, который представляет собой Custom Scheme. Если пользовательская схема является недопустимым URI перенаправления для вашего провайдера OAuth, вы можете обойти это, выполнив следующее:

  1. Настройте http(s)-endpoint для пересылки запросов на app.immich:///oauth-callback
  2. Внесите новый endpoint в белый список как допустимый URI перенаправления с вашим провайдером.
  3. Укажите новый endpoint как Переопределение Mobile Redirect URI в настройках OAuth.

С этими шагами вы сможете использовать OAuth из мобильного приложения без URI перенаправления с пользовательской схемой.

информация

Immich имеет маршрут (/api/oauth/mobile-redirect), который уже настроен для пересылки запросов на app.immich:///oauth-callback и может быть использован для шага 1.

Пример настройки

Пример для Authentik

Пример для Authentik

Вот пример настройки OAuth для Authentik:

Настройка авторизованных URI перенаправления (Authentik OAuth2/OpenID Provider)

Настройка OAuth в Immich System Settings

НастройкаЗначение
URL издателяhttps://example.immich.app/application/o/immich/.well-known/openid-configuration
ID клиентаAFCj2rM1f4rps***********lCLEum6hH9...
Секрет клиента0v89FXkQOWO***************mprbvXD549HH6s1iw...
Scopeopenid email profile
Алгоритм подписиRS256
Требование для метки хранилищаpreferred_username
Требование для квоты хранилищаimmich_quota
Квота хранилища по умолчанию (ГиБ)0 (0 для неограниченной квоты)
Текст кнопкиВойти с Authentik (опционально)
Автоматическая регистрацияВключено (опционально)
Авто запускВключено (опционально)
Переопределение Mobile Redirect URIОтключено
Mobile Redirect URI
Пример для Google

Пример для Google

Вот пример настройки OAuth для Google:

Настройка авторизованных URI перенаправления (Google Console)

Настройка OAuth в Immich System Settings

НастройкаЗначение
URL издателяhttps://accounts.google.com
ID клиента7******************vuls.apps.googleusercontent.com
Client SecretG********************OO
Scopeopenid email profile
Signing AlgorithmRS256
Storage Label Claimpreferred_username
Storage Quota Claimimmich_quota
Default Storage Quota (GiB)0 (0 для неограниченной квоты)
Button TextВойти с помощью Google (необязательно)
Auto RegisterВключено (необязательно)
Auto LaunchВключено
Mobile Redirect URI OverrideВключено (обязательно)
Mobile Redirect URIhttps://example.immich.app/api/oauth/mobile-redirect