Authentification via SSO Externe

Vue d'ensemble

Le script de petites annonces permet de déléguer l'authentification à un SSO externe (au lieu de la gestion Interna traditionnelle). L'ensemble du système de connexion, d'inscription et de gestion du compte utilisateur est alors délégué à un site externe via un mécanisme SSO (Single Sign-On — Authentification Unique).


Qu'est-ce que le SSO ?

Le Single Sign-On (SSO) est un mécanisme d'authentification centralisé qui permet à un utilisateur de se connecter une seule fois sur un site de référence (Identity Provider) et d'accéder ensuite à plusieurs services ou applications liées, sans avoir à se reconnecter.

Dans le cadre de ce script :

  • Le site de petites annonces agit comme Service Provider (SP) — il consomme l'identité.
  • Le site SSO externe agit comme Identity Provider (IdP) — il détient et vérifie les identités.

Fonctionnement du processus de connexion

Lorsqu'un utilisateur tente de se connecter sur le site de petites annonces, le flux suivant est déclenché :

Utilisateur → Site Petites Annonces → Vérification des identifiants
                                   dans la base de données du SSO
                                            ↓
                                   Retour avec session validée
                                           ↓
                                Utilisateur accède au site

Étapes détaillées

  1. Tentative de connexion : L'utilisateur clique sur "Se connecter" sur le site de petites annonces.
  2. Page de login : Le script capture les information d'identification pour le compte du site SSO externe.
  3. Vérification des identifiants : Le script vérifie le login et le mot de passe dans la base de données du SSO externe. Aucune vérification n'est effectuée localement.
  4. Retour d'authentification : En cas de succès, le script retourne un jeton d'authentification (token) ou établit une session partagée.
  5. Accès accordé : Le script reconnaît l'utilisateur comme authentifié et lui donne accès aux fonctionnalités du site.

Si le script ne trouve pas d'utilisateur dans le site SSO externe, il cherchera ensuite dans sa base locale d'utilisateur.


Pages gérées par le SSO externe

Les pages suivantes ne sont pas hébergées sur le site de petites annonces. Elles sont entièrement prises en charge par le site SSO externe :

Page Description
Inscription Création d'un nouveau compte utilisateur
Mot de passe oublié Réinitialisation du mot de passe
Modification du profil Mise à jour des informations personnelles
Changement du mot de passe Mise à jour / reset du mot de passe

Activation de ce mode

Pour activer ce mode et les différentes options, rendez vous dans le menu admin > configuration > SSO advancé :

Le SSO externe sera activé si l'option : activer SSO est sur on et que le site xeterne renseigné est Cool forum, le seul site externe actuellement supporté.

admin-sso-en


Gestion de la base de données utilisateurs

  • La base de données des utilisateurs est exclusivement hébergée et maintenue par le site SSO externe.
  • Le script de petites annonces ne stocke pas les mots de passe ni les informations d'authentification.

    ⚠️ Important : pour associer les annonces à un compte utilisateur, une copie du compte et certains champs de la base de donnée du SSO sont recopiés dans le base du script de petites annonces.

Ceci permet aussi (optionnel) de compléter certains champs du profil non présent dans le site SSO externe (exemple : année de naissance, second numéro de téléphone, ...).

Pour autoriser la modification du profil depuis le script, l'option : modifier profil devra être activée. Ainsi, tous les champs de la base du script sont modifiables à l'exception du login et adresse email :

admin-sso-en

Même dans ce mode, on peut encore créer, via la console d'administration, des usagers locaux au script. Il faudra alors faire attention à ce que l'email et le login soient uniques car aucun controle ne sera fait dans la base du site SSO externe pour vérifier si ce login et email existent déjà.

Ensemble des champs recopiés

Ensemble des champs recopiés (crée ou modifiés) à chaque login sur le site.

# Source Field Destination Field Forced Value Format
1 userid userid - none
2 login username - none
4 usermail email - none
5 ville loccity - none
6 cp loczipcode - none
7 region locregion - none
8 registerdate registerdate - unix_to_datetime
9 prenom firstname - none
10 latitude loclat - none
11 longitude loclng - none
12 usercitation desc2 - none
13 userip ip - none
14 pays loccountrycode - upper
15 - usertype 1 (utilisateur standard) none
16 - status 40 (approuvé) none
17 - expiredate 2030-12-12 00:00:00 none
18 - protype par (particulier) none
19 - auth cf none