Onglet Eole sso : Configuration du service SSO pour l'authentification unique
Le serveur EoleSSO est prévu pour être déployé sur un module EOLE.
Il est cependant possible de l'utiliser dans un autre environnement en modifiant manuellement le fichier de configuration /usr/share/sso/config.py
.
Cette section décrit la configuration du serveur depuis l'interface de configuration du module disponible sur tous les modules EOLE. Les valeurs définies par défaut simplifient la configuration dans le cadre d'une utilisation prévue sur les modules EOLE.
Serveur local ou distant
L'activation du serveur EoleSSO s'effectue dans l'onglet Services
.
La variable Utiliser un serveur EoleSSO
permet :
-
non
: de ne pas utiliser de SSO sur le serveur ; -
local
: d'utiliser et de configurer le serveur EoleSSO local ; -
distant
: d'utiliser un serveur EoleSSO distant (configuration cliente).
Adresse et port d'écoute
L'onglet supplémentaire Eole-sso
apparaît si l'on a choisi d'utiliser un serveur EoleSSO local ou distant.
Dans le cas de l'utilisation du serveur EoleSSO local, Nom de domaine du serveur d'authentification SSO
doit être renseigné avec le nom DNS du serveur.
Durée de vie d'une session (en secondes)
: indique la durée de validité d'une session SSO sur le serveur. Cela n'influence pas la durée de la session sur les applications authentifiées, seulement la durée de la validité du cookie utilisé par le serveur SSO. Au delà de cette durée, l'utilisateur devra obligatoirement se ré-authentifier pour être reconnu par le serveur SSO. Par défaut, la durée de la session est de 3 heures (7200 secondes).CSS par défaut du service SSO (sans le .css)
: permet de spécifier une CSS différente pour le formulaire d'authentification affiché par le serveur EoleSSO. Le fichier CSS doit se trouver dans le répertoire/usr/share/sso/interface/theme/style/<nom_fichier>.css
. Se reporter au chapitre personnalisation pour plus de possibilités à ce sujet.
Dans le cas de l'utilisation d'un serveur EoleSSO distant, seuls les paramètres Nom de domaine du serveur d'authentification SSO
et Port utilisé par le service EoleSSO
sont requis et les autres options ne sont pas disponibles car elles concernent le paramétrage du serveur local.
Remarque
Par défaut le serveur communique sur le port 8443
. Il est conseillé de laisser cette valeur par défaut en cas d'utilisation avec d'autres modules EOLE.
Si vous décidez de changer ce port, pensez à le modifier également dans la configuration des autres machines l'utilisant.
Truc & astuce
À partir d'EOLE 2.7.2, le serveur SSO local est est également accessible sur le port HTTPS avec l'URL : https://<nom_du_serveur>/sso
.
Attention
Si le port HTTPS (443
) est déclaré pour ce service, alors celui-ci n’est accessible que via l’URL https://<nom_du_serveur>/sso
.
L’URL de la forme https://<nom_du_serveur>:<port>/
reste valable pour les autres valeurs de port que 443.
Configuration LDAP
Le serveur EoleSSO se base sur des serveurs LDAP[1] pour authentifier les utilisateurs et récupérer leurs attributs.
Il est possible ici de modifier les paramètres d'accès à ceux-ci :
- l'adresse et le port d'écoute du serveur LDAP ;
- le chemin de recherche correspond à l'arborescence de base dans laquelle rechercher les utilisateurs (basedn) ;
- un libellé à afficher dans le cas où un utilisateur aurait à choisir entre plusieurs annuaires/établissements pour s'authentifier (voir le chapitre
Gestion des sources d'authentifications multiples
) ; - un fichier d'informations à afficher dans le cadre qui est présenté en cas d'homonymes. Ces informations apparaîtront si l'utilisateur existe dans l'annuaire correspondant. Les fichiers doivent être placés dans le répertoire
/usr/share/sso/interface/info_homonymes
; - DN[2] et mot de passe d'un utilisateur en lecture pour cet annuaire ;
- attribut de recherche des utilisateurs : indique l'attribut à utiliser pour rechercher l'entrée de l'utilisateur dans l'annuaire (par défaut, uid)
- choix de la disponibilité ou non de l'authentification par clé OTP[3] si disponible (voir plus loin).
Attention
Dans le cas où vous désirez fédérer EoleSSO avec d'autres fournisseurs de service ou d'identité (ou 2 serveurs EoleSSO entre eux), il est nécessaire de configurer un utilisateur ayant accès en lecture au serveur LDAP configuré.
Il sera utilisé pour récupérer les attributs des utilisateurs suite à réception d'une assertion d'un fournisseur d'identité (ou dans le cas d'une authentification par OTP).
Cet utilisateur est pré-configuré pour permettre un accès à l'annuaire local sur les serveurs EOLE.
Sur les modules EOLE, la configuration recommandée est la suivante :
- utilisateur :
cn=reader,o=gouv,c=fr
- fichier de mot de passe :
/root/.reader
Si vous connectez EoleSSO à un annuaire externe, vous devez définir vous même cet utilisateur :
Utilisateur de lecture des comptes ldap
: renseignez son dn complet dans l'annuairefichier de mot de passe de l'utilisateur de lecture
: entrez le chemin d'un fichier ou vous stockerez son mot de passe (modifiez les droits de ce fichier pour qu'il soit seulement accessible par l'utilisateurroot
)
Passer la variable Information LDAP supplémentaires (applications)
à oui
permet de configurer pour chaque annuaire LDAP déclaré des attributs supplémentaires qui seront utilisés par les applications web (DN racine de l'arbre utilisateurs, DN racine de l'arbre groupes, Champ 'nom d'affichage' de l'utilisateur, Champ 'mail' de l'utilisateur, Champ 'fonction' de l'utilisateur, Champ 'categorie' de l'utilisateur, Champ 'rne' de l'utilisateur, Champ 'fredurne' de l'utilisateur…).
Serveur SSO parent
Un autre serveur EoleSSO peut être déclaré en tant que serveur parent dans la configuration (adresse et port). Se reporter au chapitre traitant de la fédération pour plus de détails sur cette notion.
Si un utilisateur n'est pas connu dans le référentiel du serveur EoleSSO, le serveur essayera de l'authentifier auprès de son serveur parent (dans ce cas, la liaison entre les 2 serveurs s'effectue par l'intermédiaire d'appels XML-RPC[4] en HTTPS, sur le port défini pour le serveur EoleSSO).
Si le serveur parent authentifie l'utilisateur, il va créer un cookie de session local et rediriger le navigateur client sur le serveur parent pour qu'une session y soit également créée (le cookie de session est accessible seulement par le serveur l'ayant créé).
Attention
Ce mode de fonctionnement n'est plus recommandé aujourd'hui. Il faut préférer à cette solution la mise en place d'une fédération par le protocole SAML.
Fédération d'identité
Le serveur EoleSSO permet de réaliser une fédération vers un autre serveur EoleSSO ou vers d'autre types de serveurs compatibles avec le protocole SAML[5] (version 2).
Nom d'entité SAML du serveur eole-sso (ou rien)
: nom d'entité du serveur EoleSSO local à indiquer dans les messages SAML. Si le champ est laissé à vide, une valeur est calculée à partir du nom de l'académie et du nom de la machine.
Cacher le formulaire lors de l'envoi des informations de fédération
: permet de ne pas afficher le formulaire de validation lors de l'envoi des informations de fédération à un autre système. Ce formulaire est affiché par défaut et indique la liste des attributs envoyés dans l'assertion SAML permettant la fédération.
Authentification OTP
Il est possible de configurer EoleSSO pour gérer l'authentification par clé OTP à travers le protocole securID[6] de la société EMC (précédemment RSA).
Pour cela il faut :
installer et configurer le client PAM/Linux proposé par EMC (voir annexes)
Répondre
oui
à la questionGestion de l'authentification OTP (RSA SecurID)
Des champs supplémentaires apparaissent :
Pour chaque annuaire configuré, un champ permet de choisir la manière dont les identifiants à destination du serveur OTP sont gérés. '
inactifs
' (par défaut) indique que l'authentification OTP n'est pas proposée à l'utilisateur. Avec'identiques'
, le login local (LDAP) de l'utilisateur sera également utilisé comme login OTP. La dernière option est 'configurables
', et indique que les utilisateurs doivent renseigner eux même leur login OTP. Dans ce dernier cas, l'identifiant est conservé sur le serveur EoleSSO pour que l'utilisateur n'ait pas à le renseigner à chaque fois (fichier/usr/share/sso/securid_users/securid_users.ini
).Le formulaire d'authentification détecte automatiquement si le mot de passe entré est un mot de passe OTP. Il est possible de modifier la reconnaissance si elle ne convient pas en réglant les tailles minimum et maximum du mot de passe et en donnant une expression régulière qui sera vérifiée si la taille correspond. Les options par défaut correspondent à un mot de passe de 10 à 12 caractères uniquement numériques.
Certificats
Les communications de et vers le serveur EoleSSO sont chiffrées.
Sur les modules EOLE, des certificats auto-signés sont générés à l'instanciation[7] du serveur et sont utilisés par défaut.
Il est possible de renseigner un chemin vers une autorité de certification et un certificat serveur dans le cas de l'utilisation d'autres certificats (par exemple, des certificat signés par une entité reconnue).
Les certificats doivent être au format PEM.