...
| Remarque | ||
|---|---|---|
| ||
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.context | Utilisé 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 CAS | Dé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
...
- Copier l'archive modules/cas-server-webapp-VERSION.war dans le répertoire webapps/ de Tomcat
- Démarrer Tomcat (qui se charge alors de déployer l'archive)
- 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).
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)
- Désactiver le cas embarqué. Pour cela :
Commenter la ligne "<module>cas</module>" dans le fichier uportal-portlets-overlay/pom.xml.
Bloc de code language html/xml <modules> ... <module>BookmarksPortlet</module> <!-- module>cas</module --> <module>cas-proxy-test-portlet</module> ... </modules>Commenter la dépendance CAS dans le fichier uportal-ear/pom.xml.
Bloc de code language html/xml <!-- <dependency> <groupId>org.jasig.portal.portlets-overlay</groupId> <artifactId>cas</artifactId> <version>${project.version}</version> <type>war</type> </dependency> -->
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 language html/xml title webapps\cas-server-webapp-<version>\WEB-INF\classes\log4j.xml firstline 35 linenumbers true <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 language html/xml title webapps\cas-server-webapp-<version>\WEB-INF\classes firstline 104 <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>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) :
Ajout dans le fichier pom.xml du cas bundle :
Bloc de code title uportal-portlets-overlay\cas\pom.xml firstline 160 linenumbers true <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>Ajouts dans le fichier deployerConfigContext.xml du cas bundle :
Bloc de code title uportal-portlets-overlay\cas\src\main\webapp\WEB-INF\deployerConfigContext.xml firstline 120 linenumbers true <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 title uportal-portlets-overlay\cas\src\main\webapp\WEB-INF\deployerConfigContext.xml firstline 222 linenumbers true <bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource"> <property name="urls"> <list> <value>${environment.build.ldap.url}</value> </list> </property> </bean>
...