Pages enfant
  • Fournisseur de services Shibboleth uPortal-Esup

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 : Site du CRU

Dans shibboleth.xml, définir un chemin : '''Login'''

Dans la configuration Apache, protéger ce chemin :

<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 :
<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) :
## 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) :
# Class name of the concrete IPersonManager implementation to be used

 #

 org.jasig.portal.security.PersonManagerFactory.implementation=org.jasig.portal.security.provider.RemoteUserPersonManager

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 :

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

<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>
  • Aucune étiquette