SALT > Modules > SSO >
Ci-dessous se trouve plusieurs schémas sur le fonctionnement interne du SSO.

Fonctionnement global

Le fonctionnement global du SSO est détaillé ci-dessous :
sso Le SSO travaille avec une session séparée de celle de l'application.
On conseille d'initialiser le SSO avant d'ouvrir la session dans l'application cliente, mais si ce n'est pas possible ca va fonctionner quand même.
Le SSO sera capable de sauvegarder la session de l'application, d'ouvrir la session du SSO, puis de restaurer la session de l'application.

Après le premier login, on ne vérifie que l'existence d'informations dans la session du SSO, qui contient entre autre la liste des applications autorisées pour l'utilisateur.
Si une valeur de l'utilisateur ou une autorisation est modifiée par un administrateur, il faudra que l'utilisateur se déconnecte puis se reconnecte pour qu'elle soit prise en compte.

L'appel de la méthode init() de la classe gestionnaire est réalisé à chaque page. Il est donc conseillé de sauvegarder ses résultats intermédiaires dans une variable, par exemple avec $sso->registerGlobals comme dans la documentation, pour ne pas tout recalculer à chaque fois.

Lorsqu'un utilisateur se logge pour la première fois, on va essayer toutes les méthodes d'authentification qui sont définies par défaut dans le SSO.
Si l'une d'entre elles fonctionne, on va créer l'utilisateur dans le SSO et enregistrer cette méthode comme celle de l'utilisateur.
Lors du prochain login, on essayera uniquement cette méthode d'authentification et pas les autres.

Langage

Voici la manière dont le langage utilisé est déterminé :
lang Lorsqu'un utilisateur ne s'est jamais loggé, on utilise les préférences de langues définies dans son navigateur (HTTP_ACCEPT_LANGUAGE), ou la constante SSO_LOCALE si aucune langue valide pour le SSO n'est définie dans les préférences.

Une fois qu'un utilisateur s'est authentifié, s'il a défini une langue, on enregistre cette langue dans un cookie qui sera prioritaire par la suite.
On modifie également le cookie lorsqu'on modifie la langue dans le profil de l'utilisateur pour ne pas avoir à attendre le prochain login.

Le cookie étant indépendant du login, la langue reste celle de l'utilisateur même après la déconnexion. Cela permet de réafficher le formulaire de login dans la langue choisie par l'utilisateur.