OpenCCT
OpenCCT: Authentification SSO OpenID connect - Page 5
Gestion des erreurs d'authentification
<filter>
  ...
  <init-param>
   <param-name>error-path</param-name>
   <param-value>/erreur_personnalisee</param-value>
  </init-param>
</filter>
 
Les données de l'utilisateur authentifié

Si l'utilisateur, redirigé vers le serveur d'authentification, est authentifié, OpenCCT crée une instance de la classe net.meddeb.oauth.opencct.User avec les données de cet utilisateur. Ensuite stocke cette instance dans la session. Cette classe permet de renseigner les données suivantes:

  • Identifiant unique géré par le serveur d'authentification.
  • Nom et prénom.
  • Adresse de courrier électronique et le statut de cette adresse: vérifiée ou non.

Par défaut seul l'identifiant unique est récupéré par OpenCCT mais ce comportment peut être modifié par l'introduction du paramètre optionnel oauth-scope du filtre. Ce paramètre peut être ajouté au fichier «web.xml» comme suit:

<filter>
  ...
  <init-param>
   <param-name>oauth-scope</param-name>
   <param-value>PE</param-value>
  </init-param>
</filter>

La valeur de ce paramètre doit être une combinaison des lettres E et P: l'une des deux ou les deux à la fois. «P» permet de récupérer les nom et prénom de l'utilisateur et «E» son adresse de courrier électronique. La récupération de ces données est soumise au consentement de l'utilisateur au cours de l'authentification. Si l'utilisateur n'autorise pas l'accès à ces données, l'autentification échoue. Pour cela, il faut utiliser avec précaution ce paramètre et ne demander l'accès à une donnée que si elle est réellement indispensable.

D'un autre côté, certains serveurs d'authentification nécessitent l'appel à un point d'information supplémentaire pour récupérer ces données: Userinfo endpoint. Il convient de s'informer à ce propos pour le serveur utilisé. Si c'est le cas, il faut introduire le paramètre userinfo-endpoint dans le fichier «web.xml». La valeur de ce paramètre est l'URL de ce point d'accès et que la documentation du serveur utilisé doit fournir.