Aller au contenu principal

OpenID Connect

Cette section décrit la configuration de l'authentification OpenID Connect (OIDC) dans Sync-in.

Sync-in implémente le flux Authorization Code conforme aux recommandations OAuth 2.0 pour les applications web.

La configuration se fait dans environment.yaml, voir la section OIDC.


Prérequis

Avant d'activer l'OIDC dans Sync-in, un client OAuth/OIDC doit être créé dans votre fournisseur d'identité (IdP).
Les libellés varient selon les fournisseurs, mais la logique est similaire.

Créer une application (client) :

  • Le type de fournisseur doit être OpenID Connect.
  • Le type de client doit être Confidentiel.
  • Le type d'application doit être Web.
  • Le type de flux (grant) doit être Authorization Code.

Cette configuration permet d'obtenir l'identifiant client (clientId) ainsi que le secret associé (clientSecret) que vous devez reporter dans la configuration.

Configurer les URI de redirection

Les URI de redirection doivent être déclarées auprès de l'IdP.
Elles permettent à l'IdP de rediriger l'utilisateur vers Sync-in après une authentification réussie.

Connexion depuis un navigateur web

Pour l'authentification via l'interface web, déclarez l'URI suivante :

  • https://DOMAINE:PORT/api/auth/oidc/callback
info

Cette URI correspond au paramètre de configuration redirectUri.
Elle doit obligatoirement se terminer par /api/auth/oidc/callback.

Connexion depuis les applications de bureau

Les applications de bureau utilisent le navigateur par défaut du système pour réaliser l'authentification.
Après la connexion, le navigateur redirige l'utilisateur vers une URI locale afin de transmettre le résultat d'authentification à l'application.

Pour autoriser ce fonctionnement, les URI locales suivantes doivent être déclarées :

  • http://127.0.0.1:49152/oidc/callback
  • http://127.0.0.1:49153/oidc/callback
  • http://127.0.0.1:49154/oidc/callback

Cette méthode améliore la compatibilité avec les IdP et permet de respecter les mécanismes d'authentification déjà déployés dans les environnements d'entreprise (SSO, MFA, politiques de sécurité, etc.).


Configuration

Exemple minimal :

auth:
provider: oidc
oidc:
issuerUrl: https://auth.example.com/realms/my-realm
clientId: OIDCClientId
clientSecret: OIDCClientSecret
redirectUri: https://sync-in.domain.com/api/auth/oidc/callback

⚠️ redirectUri doit correspondre exactement à l'URI déclarée dans l'IdP.


Flux d'authentification

Deux méthodes d'authentification sont disponibles sur l'écran de connexion Sync-in.

Authentification locale

  • Les comptes invités (guests), les comptes administrateurs et les identifiants applicatifs (app passwords) peuvent se connecter via leur login / mot de passe.
  • Les autres utilisateurs peuvent utiliser leur mot de passe local uniquement si :
    • l'option options.enablePasswordAuth est activée ;
    • un mot de passe local est défini pour le compte.
  • Cette configuration permet de conserver un accès d'urgence à l'administration sans désactiver l'authentification OIDC.

Authentification via OpenID Connect (OIDC)

  • L'utilisateur lance la connexion via le bouton OIDC.
  • Il est redirigé vers l'IdP pour s'authentifier.
  • Après validation, l'utilisateur est automatiquement redirigé vers Sync-in.
  • Sync-in récupère les informations utilisateur et synchronise le compte local.
  • Si aucun compte local n'existe et que autoCreateUser est activée, un compte local est créé avec un mot de passe aléatoire.
  • Le rôle administrateur est appliqué automatiquement si configuré.

Rôles administrateurs

Si options.adminRoleOrGroup est défini, Sync-in vérifie la présence de cette valeur dans les claims groups ou roles retournés par l'IdP. Le rôle administrateur est attribué si une correspondance est trouvée.

Si options.adminRoleOrGroup n'est pas défini, les comptes admin existants conservent leur rôle et ne peuvent pas être rétrogradés via OIDC.


Disponibilité et erreurs

Les erreurs de configuration ou d'accès à l'IdP entraînent un échec de l'authentification.
En cas d'indisponibilité de l'IdP, seule l'authentification locale reste possible (voir la section Flux d'Authentification).

Sécurité

Sync-in utilise automatiquement le mécanisme PKCE (Proof Key for Code Exchange) lorsque celui-ci est supporté par l'IdP.

PKCE renforce le flux Authorization Code en ajoutant une preuve cryptographique lors de l'échange du code d'autorisation, améliorant la sécurité pour les clients web et natifs.

Cette implémentation s'aligne avec les recommandations de sécurité OAuth actuelles.