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
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/callbackhttp://127.0.0.1:49153/oidc/callbackhttp://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.enablePasswordAuthest activée ; - un mot de passe local est défini pour le compte.
- l'option
- 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
autoCreateUserest 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.