Projet Socle ENT
Pages enfant
  • CAS (Central Authentication Service) (esup 4)

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: Prise en compte des commentaires

...

Remarque
titlePrérequis

Tomcat doit avoir été configuré !

CAS, bien que préconisé par ESUP, est un moyen parmi d'autres d'effectuer l'authentification sur le portail.
Il y a plusieurs possibilités d'utilisation de CAS :

  • CAS interne (en bundle avec ESUP). Attention : ce CAS n'est pas préconisé pour un environnement hors développement.
  • CAS externe (à installer soi-même)

...

Propriétés uPortal

Définition

environment.build.uportal.server

Hostname du serveur uPortal

environment.build.real.uportal.server

Utilisé pour le load balancing. Par défaut mettre la même adresse que environment.build.uportal.server. La configuration exacte est expliquée dans la section dédiée au load balancing.

environment.build.uportal.protocol

Protocole utilisé pour contacter le serveur uPortal (http ou https)

environment.build.uportal.context

Nom de la webapp du serveur uPortal (En toute logique "/uPortal")

environment.build.real.uportal.contextUtilisé pour le load balancing. Par défaut mettre la même adresse que environment.build.uportal.context. La configuration exacte est expliquée dans la section dédiée au load balancing.

environment.build.uportal.email.fromAddress

Adresse utilisée pour envoyer des messages électronique. Elle sera visible des destinataires

Propriétés CASDéfinition

environment.build.cas.server

Hostname du serveur CAS

environment.build.cas.protocol

Protocole utilisé pour contacter le serveur CAS (http ou https)

environment.build.cas.context

Nom de la webapp du serveur CAS (En toute logique "/cas")

 

  • Toutes les propriétés "cas" servent à configurer la manière de contacter le serveur CAS
  • Toutes les propriétés "uportal" servent à configurer le service pour lequel on appelle le CAS. Concrètement, il s'agit de l'URL de redirection une fois l'authentification effectuée

...

Le serveur CAS (SEUL !) pourra être testé à l'URL suivante : http://localhost:8080/cas/login. Il ne redirigera nulle part puisqu'aucun service ne lui a été demandé. L'utilisateur test est admin/admin.

Configurer un CAS externe

...

  1. Copier l'archive modules/cas-server-webapp-VERSION.war dans le répertoire webapps/ de Tomcat
  2. Démarrer Tomcat (qui se charge alors de déployer l'archive)
  3. Vérifier la bonne installation du serveur CAS en visitant l'URL suivante : http://localhost:8080/cas-server-webapp-<VERSION>/login (où <VERSION> devient le numéro de version du serveur téléchargé, 3.5.1 dans notre exemple).
  4. Modifier la configuration du fichier esup.properties :

    Bloc de code
    environment.build.cas.server=localhost
    environment.build.cas.protocol=http
    environment.build.cas.context=/cas-server-webapp-<VERSION> (où <VERSION> est à remplacer)
    
  5. Désactiver le cas embarqué. Pour cela :
    1. Commenter la ligne "<module>cas</module>" dans le fichier uportal-portlets-overlay/pom.xml.

      Bloc de code
      languagehtml/xml
      <modules>
          ...
          <module>BookmarksPortlet</module>
          <!-- module>cas</module -->
          <module>cas-proxy-test-portlet</module>
          ...
      </modules>
      
    2. Commenter la dépendance CAS dans le fichier uportal-ear/pom.xml.

      Bloc de code
      languagehtml/xml
      <!--
      <dependency>
          <groupId>org.jasig.portal.portlets-overlay</groupId>
          <artifactId>cas</artifactId>
          <version>${project.version}</version>
          <type>war</type>
      </dependency>
      -->
      
  6. Configurer les propriétés de logs telles qu'elles l'auraient été dans un CAS embarqué. Pour cela, éditer le fichier suivant, remplacer les balises existantes par celles-ci et remplacer le texte entre crochets par les valeurs issues du fichier esup.properties :

    Bloc de code
    languagehtml/xml
    titlewebapps\cas-server-webapp-<version>\WEB-INF\classes\log4j.xml
    firstline35
    linenumberstrue
    <appender name="cas" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="[environment.build.log.logfileDirectory]/cas.log" />
        <param name="DatePattern" value="'.'yyyy-MM-dd-HH" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[${environment.build.host.logicalName}]%5p [%t] %d{MMM/dd HH:mm:ss,SSS} %c{2}.[%x] - %m%n"/>
        </layout>
    </appender>
    
    Bloc de code
    languagehtml/xml
    titlewebapps\cas-server-webapp-<version>\WEB-INF\classes
    firstline104
    <logger name="org.jasig" additivity="true">
        <level value="[environment.build.log.rootLevel]" />
        <appender-ref ref="cas" />
    </logger>
    <logger name="com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager">
        <level value="[environment.build.log.rootLevel]" />
        <appender-ref ref="cas" />
    </logger>
    <!--
        WARNING: Setting the flow package to DEBUG will display
        the parameters posted to the login servlet including
        cleartext authentication credentials
    -->
    <logger name="org.jasig.cas.web.flow" additivity="true">
        <level value="[environment.build.log.rootLevel]" />
        <appender-ref ref="cas" />
    </logger>
  7.  Connecter le CAS au LDAP pour le rendre actif. Cf. section ci-dessous.

     

Utiliser un certificat

Remarque

Avant de continuer, vous devez posséder la clé publique du CAS disposer d'un couple clé privé/publique valide (Ex: certificat .pem) !

Il faut dans un premier temps ajouter ce certificat dans le magasin :

...

Le fonctionnement d'un proxy CAS est expliqué sur le wiki de l'esup-portail.

Ancre
CASLDAP
CASLDAP

Connecter CAS et LDAP

Afin de connecter CAS et LDAP, il faut procéder aux modifications suivantes (exemple de configuration - le fastbind ne marche pas dans tout les LDAP) :

  1. Ajout dans le fichier pom.xml du cas bundle :

    Bloc de code
    titleuportal-portlets-overlay\cas\pom.xml
    firstline160
    linenumberstrue
    <dependency>
        <groupId>org.jasig.cas</groupId>
        <artifactId>cas-server-support-ldap</artifactId>
        <version>${cas-server.version}</version>
        <scope>compile</scope>
        <exclusions>
            <exclusion>
                <groupId>org.inspektr</groupId>
                <artifactId>inspektr-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
  2. Ajouts dans le fichier deployerConfigContext.xml du cas bundle :

    Bloc de code
    titleuportal-portlets-overlay\cas\src\main\webapp\WEB-INF\deployerConfigContext.xml
    firstline120
    linenumberstrue
    <bean class="org.jasig.cas.adaptors.ldap.FastBindLdapAuthenticationHandler" >
        <property name="filter" value="${environment.build.ldap.uidAttr}=%u,${environment.build.ldap.baseDn}" />
        <property name="contextSource" ref="contextSource" />
    </bean>
    Bloc de code
    titleuportal-portlets-overlay\cas\src\main\webapp\WEB-INF\deployerConfigContext.xml
    firstline222
    linenumberstrue
    <bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource">
        <property name="urls">
            <list>
                <value>${environment.build.ldap.url}</value>
            </list>
        </property>
    </bean>

...