Fait avec Chinaski

SSO & OAuth

SSO & OAuth

Vous pouvez laisser votre équipe se connecter à l'admin Chinaski avec votre fournisseur d'identité existant au lieu de mots de passe Chinaski séparés. Chinaski supporte les connexions standard OAuth 2.0 par authorization code contre des fournisseurs de style OpenID Connect.

Où vivent les réglages SSO

Le SSO est configuré dans Settings → Security, sous la section Single Sign-On (OAuth / OIDC).

  • Enable SSO : activer ou désactiver les connexions SSO
  • Client ID
  • Client Secret
  • Authorization URL
  • Token URL
  • Userinfo URL

Remplissez les cinq champs du fournisseur depuis l'application OAuth/OIDC de votre fournisseur d'identité. Le SSO n'est considéré comme configuré que lorsque le SSO est activé et que chacun de ces cinq champs a une valeur.

Note : la section SSO n'apparaît pas dans Settings quand votre instance du CMS tourne en mode air-gapped.

Configurer votre fournisseur

Les cinq champs proviennent d'une application cliente OAuth/OIDC que vous créez chez votre fournisseur d'identité. Quand vous enregistrez cette application auprès de votre fournisseur, utilisez l'URI de callback (redirection) :

https://your-cms-url/auth/sso/callback

C'est l'URL de callback absolue exacte que Chinaski utilise tant pour l'étape d'autorisation que pour l'échange de token.

Le Client Secret est stocké chiffré. Pour le changer, entrez une nouvelle valeur ; laisser le champ vide garde le secret existant.

Ce que voient les utilisateurs

Une fois le SSO configuré, un bouton « Sign in with SSO » apparaît sur la page de connexion admin. Le cliquer démarre la connexion chez votre fournisseur d'identité, où les scopes demandés sont openid, email et profile.

Si quelque chose tourne mal, l'utilisateur est renvoyé à la page de connexion avec l'un de ces messages :

  • SSO is not configured
  • Invalid OAuth state: possible CSRF attack
  • OAuth authorization denied
  • OAuth token exchange failed (or: no access token)
  • OAuth userinfo request failed
  • OAuth userinfo did not return a user identifier
  • SSO login requires a verified email address from your identity provider

Quand la connexion réussit, l'utilisateur est mené à /admin et la connexion est enregistrée (adresse IP incluse) dans le journal d'authentification. Les sessions SSO durent 8 heures à compter de la connexion.

Comment les visiteurs deviennent des utilisateurs

Quand quelqu'un se connecte avec le SSO, Chinaski trouve son compte dans cet ordre :

  1. Par liaison SSO existante. Si un compte est déjà lié à cette identité de fournisseur, il est utilisé.
  2. Par e-mail vérifié. Le fournisseur doit soit confirmer l'adresse e-mail, soit omettre le flag de vérification ; si le fournisseur déclare explicitement que l'e-mail n'est pas vérifié, la connexion est refusée avec le message « verified email address » ci-dessus. Un compte correspondant est ensuite lié à l'identité SSO.
  3. Nouveau compte. Si rien ne correspond, un compte est créé automatiquement avec le rôle editor. Le nom d'utilisateur vient de la partie locale de l'e-mail (caractères invalides retirés), retombe sur sso_user, et reçoit un nombre en suffixe si le nom est pris (jusqu'à 100 tentatives).

Chaque compte est l'un ou l'autre : la création automatique de comptes signifie que les visiteurs qui complètent une connexion SSO obtiendront un accès editor à votre site. Assurez-vous que votre fournisseur d'identité n'autorise que les personnes que vous voulez comme éditeurs. Un compte auto-créé par SSO est aussi enregistré comme événement d'audit.

Suspendre un utilisateur bloque aussi ses connexions SSO, puisque les utilisateurs suspendus sont refusés avec le même message d'accès refusé que toute connexion échouée, après un court délai.

Comptes liés

Un utilisateur connecté peut voir si son compte est lié au SSO sur sa propre page Account, sous l'en-tête Single Sign-On (« Linked to oauth »).

Désactiver le SSO

Décochez la case Enable SSO dans Settings → Security pour retirer le bouton de connexion et désactiver la connexion SSO. Vous pouvez aussi réinitialiser tout l'onglet Security à ses défauts avec le contrôle de réinitialisation de la section Security, ce qui désactive le SSO et efface les champs Client ID, Authorization URL, Token URL et Userinfo URL.

Lisez ce site en