Projets
Pages enfant
  • 3.14 Authentification

Vous regardez une version antérieure (v. /wiki/spaces/PROJ/pages/100663523/3.14+Authentification) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 3) afficher la version suivante »

A compléter

Shib

esup-commons n'authentifie pas les utilisateurs en tant que tel. Il est en revanche capable, en s'appuyant sur un service d'authentification externe, de savoir quel est l'utilisateur connecté à l'application web en cours.

Plusieurs moyens sont possibles pour cela. esup-commons s'appuie sur un service d'authentification externe, le bean authenticationService, pour authentifier les utilisateurs. Ce bean, qui doit implémenter l'interface AuthenticationService, possède une méthode getCurrentUserId(), qui renvoie l'identifiant de l'utilisateur courant.Le bean authenticationService est défini dans /properties/auth/auth.xml. Plusieurs classes implémentant l'interface AuthenticationService sont disponibles dans le package org.esupportail.commons.services.authentication, elles sont décrites ci après.


Sommaire :


Modes disponibles

CAS

La classe CasFilterAuthenticator, renvoie l'identifiant de l'utilisateur authentifié par le filtre J2EE CAS :

<bean
    id="authenticationService"
    class="org.esupportail.commons.services.authentication.CasFilterAuthenticator" />

Pour que cela fonctionne, il faut bien sûr que le filtre CAS soit correctement configuré.

Portail (JSR-168)

La classe PortalAuthenticator renvoie l'identifiant de l'utilisateur connecté au portail, selon JSR-168 :

<bean
    id="authenticationService"
    class="org.esupportail.commons.services.authentication.PortalAuthenticator" >
  <property name="uidPortalAttribute" value="uid" />
</bean>

La propriété uidPortalAttribute est le nom de l'attribut du portail qui sera considéré comme l'identifiant de l'utilisateur. Il doit être déclaré dans le fichier /webapp/WEB-INF/portlet.xml.Cette implémentation ne fonctionne qu'en mode portlet.

Mixte CAS / Portail

La classe PortalOrCasFilterAuthenticator s'appuie d'abord sur JSR-168, puis sur le filtre CAS (fonctionne à la fois en mode portlet ou servlet) :

<bean
    id="authenticationService"
    class="org.esupportail.commons.authentication.PortalOrCasFilterAuthenticator" >
  <property name="uidPortalAttribute" value="uid" />
</bean>

Cette implémentation fonctionne à la fois en mode portlet et en mode servlet, il n'est donc pas nécessaire de la changer lorsque l'on change de mode de déploiement.

Remote user

La classe RemoteUserAuthenticator s'appuie sur la variable REMOTE_USER :

<bean
    id="authenticationService"
    class="org.esupportail.commons.services.authentication.RemoteUserAuthenticator" />

L'utilisation de cette classe n'est pas recommandée.

Authentification hors connexion

La classe OfflineFixedUserAuthenticator renvoie toujours le même identifiant.

<bean
    id="authenticationService"
    class="org.esupportail.commons.services.authentication.OfflineFixedUserAuthenticator" >
  <property name="userId" value="paubry" />
</bean>

Elle peut être utilisée lorsque l'on travaille à la mise au point hors connexion (pratique dans le train).

Authentification en mode batch

En mode batch, la définition du bean authenticationService n'est pas obligatoire.

Utilisation du service d'authentification

Le service d'authentification s'appelle de la manière suivante :

String uid = authenticationService.getCurrentUserId();

Si uid est null, alors l'utilisateur n'est pas authentifié.

  • Aucune étiquette