Spécification
filtres d'identification
Introduction
Ce document a pour but de spécifier le mode de
fonctionnement, à base de filtre J2EE, de l'identification
des serveurs Slide et Cocoon utilisés dans le cadre d'Injac.
Principe de fonctionnement
On utilise une cascade de 4
filtres. Le premier d'entre eux sert uniquement à
l'aiguiller vers les trois autres filtres. Ces trois autres filtres
gèrent les différents modes d'identification du
serveur. A savoir : LDAP,
TRUSTED
ou CAS.
Les filtres utilisent log4j
pour les logs.
Les filtres vont chercher
leurs paramètres directement dans le fichier web.xml
de l'application conformément à la norme sur les
filtres J2EE.
Le filtre d'aiguillage
Classe
- org.esupportail.portal.utils.injac.AuthenticationRouter.AuthenticationRouter
Paramètres
- org.esupportail.portal.utils.injac.AuthenticationRouter.trustedIP
- Non obligatoire, valeur
par défaut : aucune
- Donne la liste des
adresses IP (séparées par un espace) des machines
autorisées à se connecter en mode TRUSTED
- NB : pour ne pas
utiliser le mode trusted il suffit que cette liste soit vide et/ou de
ne pas configurer le filtre TRUSTED
dans le fichier web.xml
de l'application.
- org.esupportail.portal.utils.injac.AuthenticationRouter.useSecureRequestLDAP
- Non obligatoire, valeur
par défaut : false
- Permet de savoir si
l'on autorise l'utilisation du filtre LDAP
avec une connexion http ou https.
- org.esupportail.portal.utils.injac.AuthenticationRouter.agentLDAP
- Non obligatoire, valeur
par défaut : aucune
- Donne une liste
d'expressions régulières
(séparées par un espace) des types d'agent
(clients http) autorisée à se connecter via LDAP.
- org.esupportail.portal.utils.injac.AuthenticationRouter.httpRequestLDAP
- Non obligatoire, valeur
par défaut : aucune
- Donne une liste de
paramètres de la requête http et de la valeur
associée. La valeur associée prend la forme d'une
expression régulière et est
séparé du paramètre par un espace. Les
différents éléments de la liste sont
séparés par un espace. Ex : "identLDAP=true
ident=*LDAP".
- Le requête
devra correspondre à au moins un de ces
paramètres pour faire appel au filtre d'identification LDAP.
- org.esupportail.portal.utils.injac.AuthenticationRouter.agentCAS
- Non obligatoire, valeur
par défaut : aucune
- Donne une liste
d'expressions régulières
(séparées par un espace) des types d'agent
(clients http) autorisée à se connecter via CAS.
- org.esupportail.portal.utils.injac.AuthenticationRouter.httpRequestCAS
- Non obligatoire, valeur
par défaut : aucune
- Donne une liste de
paramètres de la requête http et de la valeur
associée. La valeur associée prend la forme d'une
expression régulière et est
séparé du paramètre par un espace. Les
différents éléments de la liste sont
séparés par un espace. Ex : "identCAS=true
ticket=ST*".
- Le requête
devra correspondre à au moins un de ces
paramètres pour faire appel au filtre d'identification CAS.
- Remarque : Pour CAS, on
peut aussi imaginer de faire pointer directement le client sur une URL
du style http://cas.univ.fr/login?service=http://service.univ.fr
Ce qui a pour effet de positionner directement le paramètre
de requête http service
- org.esupportail.portal.utils.injac.AuthenticationRouter.defaultAuthenticationFilter
- Non obligatoire, valeur
par défaut : LDAP
- Contient TRUSTED, LDAP
ou CAS
- Permet de
définir le filtre à utiliser par
défaut.
- NB : Si ce
paramètre n'est pas positionné, que le filtre
LDAP n'est pas configuré dans le web.xml
de l'application et que aucun des autres paramètres ne
permette de décider quel filtre utilisé on est
dans une situation ou l'utilisateur n'est pas identifié. Cas unauthenticated
de slide par exemple.
Mode de fonctionnement
- Positionne une variable
session (org.esupportail.portal.utils.injac.AuthenticationRouter.selectFilter)
qui peut valoir TRUSTED, LDAP
ou CAS.
- Cette variable session sera
testé en début de chacun des filtres suivants
pour savoir s'ils doivent opérer ou pas.
- Chaque filtre
définit un wrapper de request pour redéfinir la
fonction getUserPrincipal()
et getRemoreUser()
Le filtre d'identification
Trusted
Classe :
- org.esupportail.portal.utils.injac.AuthenticationTrusted.AuthenticationTrusted
Paramètres
- org.esupportail.portal.utils.injac.AuthenticationTrusted.TrustedPassword
- Non obligatoire, valeur
par défaut : trusted
- Donne une liste
d'expressions régulières
(séparées par un espace) des password
autorisés pour se connecter en mode trusted.
Le filtre d'identification
LDAP
Classe :
- org.esupportail.portal.utils.injac.AuthenticationLDAP.AuthenticationLDAP
Paramètres
- org.esupportail.portal.utils.injac.AuthenticationLDAP.connectionURL
- Obligatoire, valeur par
défaut : aucune
- URL du serveur LDAP
principal
- org.esupportail.portal.utils.injac.AuthenticationLDAP.alternateURL
- Non Obligatoire, valeur
par défaut : aucune
- URL du serveur LDAP
secondaire
- org.esupportail.portal.utils.injac.AuthenticationLDAP.bindType
- Non obligatoire, valeur
par défaut : FASTBIND
- Contient FASTBIND
ou SEARCHBIND.
- org.esupportail.portal.utils.injac.AuthenticationLDAP.fastBinduserPattern
- Obligatoire si bindType=FASTBIND,
valeur par défaut : aucune
- Chaîne
permettant de construire un DN LDAP à partir du nom de
connexion. Exemple : uid={0},ou=people,dc=univ,dc=fr
- org.esupportail.portal.utils.injac.AuthenticationLDAP.searchBindconnectionName
- Non obligatoire, valeur
par défaut : aucune
- Nom d'utilisateur pour
lancer la recherche LDAP en cas de SEARCHBIND.
Si le nom est vide cette recherche est faite en mode anonyme.
- org.esupportail.portal.utils.injac.AuthenticationLDAP.
searchBindconnectionPassword
- Non obligatoire, valeur
par défaut : aucune
- Mot de passe de
l'utilisateur qui lance la recherche LDAP en cas de SEARCHBIND.
- org.esupportail.portal.utils.injac.AuthenticationLDAP.searchBinduserBase
- Obligatoire si bindType=SEARCHBIND,
valeur par défaut : aucune
- Base DN
utilisée pour lancer la recherche LDAP. Exemple : ou=people,dc=univ,dc=fr
- org.esupportail.portal.utils.injac.AuthenticationLDAP.searchBinduserSubtree
- Obligatoire si bindType=SEARCHBIND,
valeur par défaut : SUBTREE
- Scope
utilisée pour lancer la recherche LDAP.
- Valeurs possible : SUBTREE, ONE, BASE
- org.esupportail.portal.utils.injac.AuthenticationLDAP.searchBinduserSearch
- Obligatoire si bindType= SEARCHBIND,
valeur par défaut : aucune
- Chaîne
permettant de construire un RDN LDAP à partir du nom de
connexion. Exemple : uid={0}
Le filtre d'identification CAS
Il s'agit ici en fait n'y plus ni moins du filtre CAS. A ceci
près que :
- L'on a adapté le
wrapper de request pour redéfinir la fonction getUserPrincipal()
- On teste en
début de filtre la variable session org.esupportail.portal.utils.injac.AuthenticationRouter.selectFilter