Astuce | ||
---|---|---|
| ||
Cette page décrit l'installation de A à Z d'un nouveau serveur CAS qui permet :
Il est facile pour un administrateur CAs d'extraire de cette documentation les éléments nécessaires à l'adaptation d'un serveur CAS existant pour lui donner les fonctionnalités voulues. |
Sommaire |
---|
Nom du serveur | cas-kerb.univ-rennes1.fr |
Système | RedHat Entreprise 5 |
Ouverture de ports | ssh (22 tcp) |
Sommaire |
---|
Nom du serveur | cas-kerb.univ-rennes1.fr |
Système | RedHat Entreprise 5 |
Ouverture de ports | ssh (22 tcp) |
Installation système
Installer les packages Tomcat (yum install tomcat5), Apache (yum install httpd), puis Maven ::
Bloc de code |
---|
[root@cas-kerb ~]# cd /usr/local
[root@cas-kerb local]# wget ftp://ftp.inria.fr/pub/Apache/maven/binaries/apache-maven-2.2.1-bin.tar.gz
--2010-03-09 10:35:41-- ftp://ftp.inria.fr/pub/Apache/maven/binaries/apache-maven-2.2.1-bin.tar.gz
=> `apache-maven-2.2.1-bin.tar.gz'
Resolving ftp.inria.fr... 192.93.2.32
Connecting to ftp.inria.fr|192.93.2.32|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD /pub/Apache/maven/binaries ... done.
==> SIZE apache-maven-2.2.1-bin.tar.gz ... 2840961
==> PASV ... done. ==> RETR |
Bloc de code |
[root@cas-kerb ~]# cd /usr/local [root@cas-kerb local]# wget ftp://ftp.inria.fr/pub/Apache/maven/binaries/apache-maven-2.2.1-bin.tar.gz --2010-03-09 10:35:41-- ftp://ftp.inria.fr/pub/Apache/maven/binaries/apache-maven-2.2.1-bin.tar.gz => `apache-maven-2.2.1-bin.tar.gz' Resolving ftp.inria.fr... 192.93.2.32 Connecting to ftp.inria.fr|192.93.2.32|:21... connected. Logging in as anonymous ... Logged in! ==> SYST ... done. ==> PWD ... done. ==> TYPE I ... done. ==> CWD /pub/Apache/maven/binaries ... done. ==> SIZE apache-maven-2.2.1-bin.tar.gz ... 2840961 ==> PASV ... done. ==> RETR apache-maven-2.2.1-bin.tar.gz ... done. Length: 2840961 (2.7M) 100%[================================>] 2,840,961 2.01M/s in 1.3s 2010-03-09 10:35:43 (2.01 MB/s) - `apache-maven-2.2.1-bin.tar.gz' saved [2840961] [root@cas-kerb local]# tar xf apache-maven-2.2.1-bin.tar.gz [root@cas-kerb local]# ln -s apache-maven-2.2.1 maven2 [root@cas-kerb local]# cd /etc/profile.d [root@cas-kerb profile.d]# cat > maven2.sh export PATH=$PATH:/usr/local/maven2/bin [root@cas-kerb profile.d]# chmod 644 maven2.sh [root@cas-kerb profile.d]# . maven2.sh [root@cas-kerb profile.d]# |
Installation de CAS
Télécharger la dernière version de CAS depuis http://www.jasig.org/cas/download et décompresser :
... done.
Length: 2840961 (2.7M)
100%[================================>] 2,840,961 2.01M/s in 1.3s
2010-03-09 10:35:43 (2.01 MB/s) - `apache-maven-2.2.1-bin.tar.gz' saved [2840961]
[root@cas-kerb local]# tar xf apache-maven-2.2.1-bin.tar.gz
[root@cas-kerb local]# ln -s apache-maven-2.2.1 maven2
[root@cas-kerb local]# cd /etc/profile.d
[root@cas-kerb profile.d]# cat > maven2.sh
export PATH=$PATH:/usr/local/maven2/bin
[root@cas-kerb profile.d]# chmod 644 maven2.sh
[root@cas-kerb profile.d]# . maven2.sh
[root@cas-kerb profile.d]# |
Installation de CAS
Télécharger la dernière version de CAS depuis http://www.jasig.org/cas/download et décompresser :
Bloc de code |
---|
[root@cas-kerb ~]# cd /usr/local
[root@cas-kerb local]# wget http://www.ja-sig.org/downloads/cas/cas-server-3.3.5-release.tar.gz
--2010-03-09 09:25:51-- http://www.ja-sig.org/downloads/cas/cas-server-3.3.5-release.tar.gz
Resolving www.ja-sig.org... 128.112.131.108
Connecting to www.ja-sig.org|128.112.131.108|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 14467126 (14M) [application/x-gzip]
Saving to: `cas-server-3.3.5-release.tar.gz'
100%[========================>] 14,467,126 427K/s in 15s
2010-03-09 09:26:07 (919 KB/s) - `cas-server-3.3.5-release.tar.gz' saved [14467126/14467126] |
Bloc de code |
[root@cas-kerb ~]# cd /usr/local [root@cas-kerb local]# wget http://www.ja-sig.org/downloads/cas/tar xf cas-server-3.3.5-release.tar.gz --2010-03-09 09:25:51-- http://www.ja-sig.org/downloads/cas/[root@cas-kerb local]# cd cas-server-3.3.5-release.tar.gz Resolving www.ja-sig.org... 128.112.131.108 Connecting to www.ja-sig.org|128.112.131.108|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 14467126 (14M) [application/x-gzip] Saving to: `cas-server-3.3.5-release.tar.gz' 100%[========================>] 14,467,126 427K/s in 15s 2010-03-09 09:26:07 (919 KB/s) - `cas-server-3.3.5-release.tar.gz' saved [14467126/14467126] [root@cas-kerb local]# tar xf cas-server-3.3.5-release.tar.gz [root@cas-kerb local]# cd cas-server-3.3.5 [root@cas-kerb cas-server-3.3.5]# [root@cas-kerb cas-server-3.3.5]# |
Pour diminuer les temps de compilation, on ajoute la propriété skipTests au plugin maven-sunfire dans le fichier pom.xml à la racine du projet :
Bloc de code | ||||
---|---|---|---|---|
| ||||
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
<includes>
<include>**/*Tests.java</include>
</includes>
<excludes>
<exclude>**/Abstract*.java</exclude>
</excludes>
</configuration>
</plugin> |
Créer un répertoire cas-server-rennes1 dans lequel seront stockées toutes les personnalisations et y ajouter le fichier pom.xml suivant :
...
Après redémarrage de Apache et Tomcat, le serveur CAS doit désormais répondre sur l'URL https://cas-kerb.univ-rennes1.fr (sur le port 80 par défaut en HTTP).
Passage en HTTPS
Installer si nécessaire le package mod_ssl (yum install mod_ssl).
Installerle certificat x509 et la cléprivée du serveur dans les répertoires appropriés (/etc/pki/tls/
Configuration de Apache
Installer le certificat du serveur en éditant /etc/httpd/conf.d/ssl.conf et modifier les lignes suivantes dans le virtual host _default_:443 :
Bloc de code |
---|
#SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateFile /etc/pki/tls/privatecerts/cas-kerb.univ-rennes1.fr.pem #SSLCertificateKeyFile /etc/pki/tls/private/localhost.key SSLCertificateKeyFile /etc/pki/tls/private/cas-kerb.univ-rennes1.fr.key |
...
Après redémarrage de Apache, le serveur CAS doit désormais répondre sur l'URL https://cas.ifsic.univ-rennes1.fr (sur le port 443 par défaut en HTTPS).
Astuce | ||
---|---|---|
| ||
Ne pas oublier de supprimer la ligne suivante de /etc/httpd/conf/httpd.conf :
|
Ajout de l'authentification LDAP
...
Bloc de code |
---|
[root@cas-kerb ~]# cd /etc [root@cas-kerb etc]# chown root:tomcat http.keytab [root@cas-kerb etc]# chmod 640 http.keytab [root@cas-kerb etc]#.keytab [root@cas-kerb etc]# chmod 640 http.keytab [root@cas-kerb etc]# |
Astuce | ||
---|---|---|
| ||
Ajouter dans le fichier /etc/tomcat5/tomcat5.conf les lignes suivantes :
Les logs se trouvent dans /var/log/tomcat5/catalina.out. |
Configuration de CAS
Ajouter le support du handler spnego
...
Bloc de code | ||||
---|---|---|---|---|
| ||||
<bean id="authenticationManager" class="org.jasig.cas.authentication.AuthenticationManagerImpl"> <property name="credentialsToPrincipalResolvers"> <list> <!-- ... the others credentialsToPrincipalResolvers ... --> <bean class="org.jasig.cas.support.spnego.authentication.principal.SpnegoCredentialsToPrincipalResolver" /> </list> </property> <property name="authenticationHandlers"> <list> <bean class="org.jasig.cas.support.spnego.authentication.handler.support.JCIFSSpnegoAuthenticationHandler"> <property name="authentication"> <bean class="jcifs.spnego.Authentication" /> </property> <property name="principalWithDomainName" value="truefalse" /> <property name="NTLMallowed" value="false"/> </bean> <!-- ... the others authenticationHandlers... --> </list> </property> </bean> |
...
La configuration de JCIFS se fait également dans le fichier login.conf pointé par le bean jcifsConfig. Créer ce fichier avec le contenu suivant :
Bloc de code |
---|
com.sun.security.jgss.krb5.accept |
Bloc de code |
jcifs.spnego.initiate { com.sun.security.auth.module.Krb5LoginModule required useKeyTabdebug=true keyTab="/etc/http.keytab" }; jcifs.spnego.accept { com.sun.security.auth.module.Krb5LoginModule requiredstoreKey=true useKeyTab=true keyTab="/etc/http.keytab" }; |
Astuce |
On peut également ajouter l'option debug=true pour obtenir des informations dans catalina.out. principal="HTTP/cas-kerb.univ-rennes1.fr";
}; |
Configuration de Tomcat
Il faut passer à la JVM qui exécute Tomcat l'option -Djavax.security.auth.useSubjectCredsOnly=false, par exemple en éditant le fichier /etc/tomcat5/tomcat5.conf et en ajoutant la ligne suivante :
...
Bloc de code | ||||
---|---|---|---|---|
| ||||
<bean id="kerberosFeedConfig" class="org.esupportail.cas.adaptors.kerberosfeed.KerberosFeedConfig"> <property name="kadminPath" value="/usr/kerberos/sbinbin/kadmin" /> <property name="realm" value="UNIV-RENNES1.FR" /> <property name="principal" value="cas/admin" /> <property name="useKeytab" value="true" /> <property name="keytab" value="/etc/cas-admin.keytab" /> <!-- property name="password" value="secret" /--> <property name="passwordAllowedChars" value="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&~#{([-|`\\_^@)]=+}$%*!:/;.,?><" /> </bean> |
...