Fork me on GitHub

Module mylutece cas

Introduction

Ce module permet de déléguer l’authentification des utilisateurs front office au service d’authentification CAS. Il permet également de récupérer auprès du serveur CAS les informations concernant l’utilisateur authentifié.

Configuration du module

Configuration de L’authentification

Dans le fichier webapp/WEB-INF/plugins/mylutece-cas.xml les propriétés suivantes doivent être mises à jour

  • casServerUrlPrefix: Préfixe de la webapp du serveur CAS. Exemple : https://server-cas/cas
  • serverName: Adresse du serveur de l’application de la webapp Lutece. Exemple : https://localhost:8080
  • tolerance: tolérance admise entre l’heure de la webapp Lutece et l’heure du serveur CAS Exemple : 100000
  • exceptionOnValidationFailure: S'il faut lever une exception ou non en cas d'échec de validation des tickets. Exemple: false

Dans le fichier webapp/WEB-INF/conf/plugins/mylutece.properties

Il faut paramétrer la propriété mylutece.url.login.page en respectant le formalisme suivant

mylutece.url.login.page= https://casServerUrlPrefix/cas/login?service= serverName /webappName>/jsp/site/plugins/mylutece/DoMyLuteceLogin.jsp?auth_provider=mylutece-cas

Les propriétés casServerUrlPrefix,serverName doivent être identiques à celles préciser dans le fichier mylutece-cas.xml, la propriété webappName correspond elle au nom de la webapp Lutece.

Exemple: https://cas.dev.ressources.paris.mdp/cas/login?service=http://localhost:8080/site-intraparis-toolbar/jsp/site/plugins/mylutece/DoMyLuteceLogin.jsp?auth_provider=mylutece-cas

Configuration de la récupération des informations de l’utilisateur

Le serveur CAS récupère les informations de l’utilisateur Authentifié et les stockent dans un objet appelé « Principal ».

Les informations contenues dans cet objet dépendent de la configuration du serveur CAS et peuvent par exemple être le nom, prénom, l’email ou le service de l’utilisateur. Le module mylutece CAS permet de récupérer ces informations et de les stocker dans un objet « LuteceUser » représentant les données de l’utilisateur Front Office

Dans le fichier webapp/WEB-INF/conf/plugins/mylutece-cas.properties

Les propriétés à configurer sont les suivantes

  • mylutece-cas.attributeKeyUsername = nom de la propriété du « Principal » correspondant à la clef d’identification de l’objet « LuteceUser ». Cette propriété est obligatoire.
    Exemple:mylutece-cas.attributeKeyUsername=uid
    Dans ce cas la clef d’identification sera récupérée à partir de la propriété uid du « Principal »
  • mylutece-cas.attributeRoles= noms séparés par des virgules des propriétés du « Principal » correspondants à des roles mylutece. Cette propriété est facultative. Exemple : mylutece-cas.attributeRoles=service Dans ce cas l’utilisateur authentifié se verra associé le role mylutece contenu dans la valeur de la propriété service du « Principal ».
  • mylutece-cas.userMappingAttributes liste des propriétés de l’objet « LuteceUser » dont les valeurs peuvent être récupérées du « Principal ». Exemple :
    • mylutece-cas.userMappingAttributes=user.name.given,user.name.family
    • mylutece-cas.attribute.user.name.given=prenom
    • mylutece-cas.attribute.user.name.family=nom
    Dans ce cas les propriétés de l’objet « LuteceUser » user.name.given et user.name.family peuvent être récupéré du « Principal ». l’attribut du « Principal » contenant la propriété user.name.given doit alors être renseigné dans la propriété mylutece-cas.attribute.user.name.given, dans l’exemple ci-dessus c’est l’attribut prenom qui contiendra cette information.