...
- Installer la brique fournisseur de services Shibboleth :
...
...
*: Dans shibboleth.xml, définir un chemin : '''shibbolethLogin'''
*: Dans la configuration Apache, protéger ce chemin :
| Bloc de code |
|---|
<Location |
...
AuthType shibboleth
ShibRequireSession On
...
/Login> AuthType shibboleth ShibRequireSession On require valid-user |
...
</Location> |
Serveur Tomcat Esup-portail
Configuration Tomcat
...
- Dans
...
- server.xml,
...
- modifier
...
- le
...
- connecteur
...
- AJP
...
- pour
...
- désactiver
...
- l'auth
...
- Tomcat
...
- :
...
| Bloc de code |
|---|
<Connector port=" |
...
[CATALINA_JK |
...
]" tomcatAuthentication="false"
|
...
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /> |
Configuration uPortal
...
- Dans security.properties, ajouter une authentification externe HTTP (basée sur REMOTE_USER) :
...
| Bloc de code |
|---|
## Ajout auth remote pour |
...
Shibboleth root.shibboleth=org.jasig.portal.security.provider.RemoteUserSecurityContextFactory |
...
- Dans portal.properties, implémenter la classe RemoteUserPersonManager pour l'interface IPersonManager (permet de récupérer la variable REMOTE_USER) :
| Bloc de code |
|---|
...
# Class name of the concrete IPersonManager implementation to be |
...
used # org.jasig.portal.security.PersonManagerFactory.implementation=org.jasig.portal.security.provider.RemoteUserPersonManager |
...
* Ajouter le répertoire "shibboleth" :
mkdir /applis/install/uPortal-2.6-esup-1.0.1/Custom/ROOT/shibboleth
* Y créer le fichier index.jsp :
<%
// Page Shibboleth
// Redirection vers servlet login
%>
<jsp:forward page="/Login" />
...
|
Gestion des attributs utilisateur
Attention, pas testé :
- Récupérer les attributs de l'utilisateur : Tiré de http://www.ja-sig.org/issues/browse/PERSONDIR-37
- télécharger http://www.ja-sig.org/issues/secure/attachment/11023/PERSONDIR-37.zip
Dans web.xml d'uPortal, déclarer un filtre sur la servlet de Login qui va lire les attributs HTTP de l'utilisateur via un bean httpHeaderAttributeSource :
| Bloc de code |
|---|
<filter>
<filter-name>HttpHeaderFilter</filter-name>
<filter-class>org.jasig.portal.services.persondir.support.HttpHeaderFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HttpHeaderFilter</filter-name>
<servlet-name>Login</servlet-name>
</filter-mapping>
|
Dans personDirectory.xml, déclarer le bean httpHeaderAttributeSource et faire la correspondance des attributs :
| Bloc de code |
|---|
<bean id="httpHeaderAttributeSource" class="org.jasig.portal.services.persondir.support.HttpHeaderPersonAttributeDao">
<property name="httpHeaderAttributesToPortalAttributes">
<map>
<entry key="HTTP_SHIB_PERSON_UID"> <value>uid</value></entry>
<entry key="HTTP_SHIB_PERSON_COMMONNAME"> <value>cn</value></entry>
<entry key="HTTP_SHIB_INETORGPERSON_DISPLAYNAME"> <value>displayname</value></entry>
</map>
</property>
</bean>
|