# 5.3 - Authentification OIDC avec Authentik

Immich prend en charge OpenID Connect. Ton fournisseur utilise le domaine `auth.dreamsaphir.net`.

## Créer l'application Authentik

Dans Authentik :

1. ouvrir `Applications > Applications` ;
2. créer une application Immich ;
3. choisir un fournisseur `OAuth2/OpenID Connect` ;
4. utiliser un client confidentiel et le flux Authorization Code ;
5. noter le Client ID et le Client Secret ;
6. choisir une clé de signature.

## URI de redirection

Ajouter exactement :

```text
app.immich:///oauth-callback
https://immich.dreamsaphir.net/auth/login
https://immich.dreamsaphir.net/user-settings
```

La première URI est indispensable pour Android et iOS.

Pour Authentik 2026.5 et versions plus récentes, définir les URI comme `Strict` et `Authorization` selon le guide d'intégration. Les versions antérieures gèrent différemment le type d'URI.

## Configurer Immich

Ouvrir :

```text
Administration > Settings > OAuth Authentication
```

Valeurs principales :

```text
Enabled       : true
Issuer URL    : https://auth.dreamsaphir.net/application/o/immich/
Client ID     : valeur Authentik
Client Secret : valeur Authentik
Scope         : openid email profile
Button Text   : Connexion avec Authentik
Auto Register : selon la politique choisie
```

Adapter le slug `immich` si l'application Authentik en utilise un autre.

## Vérifier la découverte OIDC

```bash
curl -fsS \
  https://auth.dreamsaphir.net/application/o/immich/.well-known/openid-configuration \
  | python3 -m json.tool
```

## Tester sans se verrouiller

1. garder une session administrateur locale ouverte ;
2. utiliser une fenêtre privée pour le test OIDC ;
3. tester le Web ;
4. tester l'application mobile ;
5. vérifier la création ou liaison du compte ;
6. vérifier le retour après déconnexion.

Ne pas activer immédiatement `Auto Launch` ni désactiver le mot de passe local avant un test complet.

## Récupération

Dans le conteneur serveur :

```bash
immich-admin enable-password-login
immich-admin disable-oauth-login
immich-admin reset-admin-password
```

Docker Compose :

```bash
docker exec -it immich_server immich-admin enable-password-login
```

Références :

- `https://docs.immich.app/administration/oauth/`
- `https://integrations.goauthentik.io/media/immich/`