Projet Socle ENT
Pages enfant
  • Fournisseur de services Shibboleth uPortal-Esup

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Commentaire: Migrated to Confluence 5.3

...

Généralités

...

Installer un fournisseur de services Shibboleth pour gérer des authentifications en fédération avec Esup-Portail==

Frontal Apache

...

...

  • Installer

...

  • la

...

  • brique

...

  • fournisseur

...

  • de

...

  • services

...

  • Shibboleth

...

  • :

...

...

Dans CRU\[http://federation.cru.fr/test/installation-SP.html:http://federation.cru.fr/test/installation-SP.html\] \*: Dans shibboleth.xml, définir un chemin : '''shibbolethLogin''' \*:

Dans la configuration Apache, protéger ce chemin :

Bloc de code

...

<Location /

...

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é :

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>