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
...
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] [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]# |
Créer un répertoire cas-server-rennes1 dans lequel seront stockées toutes les personnalisations et y ajouter le fichier pom.xml suivant 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 :
Bloc de code | ||||
---|---|---|---|---|
| ||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <groupId>org.jasig.cas</groupId> <artifactId>cas-server</artifactId> <version>3.3.5</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>fr.univrennes1.cas</groupId> <artifactId>cas-server-rennes1</artifactId> <version>3.3.5</version> <packaging>war</packaging> <name>University of Rennes 1 CAS webapp</name> <organization><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <groupId>org.jasig.cas</groupId> <artifactId>cas-server</artifactId> <version>3.3.5</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>fr.univrennes1.cas</groupId> <artifactId>cas-server-rennes1</artifactId> <version>3.3.5</version> <packaging>war</packaging> <name>University of Rennes 1 CAS webapp</name> <organization> <name>University of Rennes 1</name> <url>http://www.univ-rennes1.fr.fr</url> </organization> <description>The University of Rennes 1 customizations to the JA-SIG CAS server.</description> <dependencies> <dependency> <name>University of Rennes 1</name> <url>http://www.univ-rennes1.fr.fr</url> </organization> <description>The University of Rennes 1 customizations to the JA-SIG CAS server.</description> <dependencies> <dependency> <groupId>org.jasig.cas</groupId> <artifactId>cas-server-webapp</artifactId> <version>${project.version}</version> <type>war</type> </dependency> <dependency> <groupId>org.jasig.cas</groupId> <artifactId>cas-server-core</artifactId> <version>${project.version}</version> </dependency> </dependencies> <build> <finalName>cas</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>RELEASE</version> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins> </build> <repositories> <repository> <id>jasig-repository</id> <name>JA-SIG Maven2 Repository</name> <url>http://developer.ja-sig.org/maven2</url> </repository> </repositories> <reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-changelog-plugin</artifactId> </plugin> </plugins> </reporting> </project> |
...
Bloc de code |
---|
[root@cas-kerb ~]# cd /usr/local/cas-server-3.3.5 [root@cas-kerb cas-server-3.3.5]# cat > deploy-restart.sh #!/bin/bash service tomcat5 stop pushd /var/usrlib/local/cas-server-3.3.5/cas-server-rennes1 mvn package install tomcat5/webapps rm -rf /var/lib/tomcat5/webapps/ROOT rm -rf /var/lib/tomcat5/webapps/ROOT.war popd rm -rf /usr/share/tomcat5/work/_ cp target/cas.war pushd /var/liblog/tomcat5/webapps/ROOT.war popd service tomcat5 start [root@cas-kerb cas-server-3.3.5]# chmod 744 deploy-restart.sh rm -rf cas.log catalina.out touch cas.log catalina.out chown tomcat.tomcat cas.log catalina.out popd pushd /usr/local/cas-server-3.3.5 pushd cas-server-rennes1 mvn package install cp target/cas.war /var/lib/tomcat5/webapps/ROOT.war popd popd service tomcat5 start [root@cas-kerb cas-server-3.3.5]# chmod 744 deploy-restart.sh [root@cas-kerb cas-server-3.3.5]# |
Ajout d'un Ajout d'un frontal Apache
On va dans cette partie configurer un frontal Apache sur le port 80, qui va accéder au Tomcat du serveur CAS en AJP sur le port 8009.
...
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
Configuration de CAS pour LDAP
Ajouter la dépendance
Configuration de CAS pour LDAP
Ajouter la dépendance vers le module cas-server-support-ldap dans le fichier pom.xml :
...
Le fichier /etc/http.keytab sera utilisé par la librairie JCIFS.
Configuration de CAS
Ajouter le support du handler spnego
Editer le fichier pom.xml et ajouter la dépendance suivante (par exemple juste après la dépendance vers le module cas-server-support-ldap) :
...
<dependency>
<groupId>org.jasig.cas</groupId>
<artifactId>cas-server-support-spnego</artifactId>
<version>${project.version}</version>
</dependency>
Modifier le login webflow
Editer le fichier src/main/webapp/WEB-INF/login-webflow.xml et ajouter l'état suivant juste avant l'état viewLoginForm :
...
<action-state id="startAuthenticate">
<action bean="negociateSpnego" />
<transition on="success" to="spnego" />
</action-state>
<action-state id="spnego">
<action bean="spnego" />
<transition on="success" to="sendTicketGrantingTicket" />
<transition on="error" to="viewLoginForm" />
</action-state>
, il doit être lisible par l'utilisateur tomcat :
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]# |
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
Editer le fichier pom.xml et ajouter la dépendance suivante (par exemple juste après la dépendance vers le module cas-server-support-ldap) Dans ce même fichier, remplacer les références à viewLoginForm par startAuthenticate pour les deux decision-state gatewayRequestCheck et renewRequestCheck :
Bloc de code | ||||
---|---|---|---|---|
| ||||
<decision-state id="gatewayRequestCheck"><dependency> <if test="${externalContext.requestParameterMap['gateway'] != '' && externalContext.requestParameterMap['gateway'] != null && flowScope.service != null}"<groupId>org.jasig.cas</groupId> <artifactId>cas-server-support-spnego</artifactId> then="redirect" else="startAuthenticate" /> </decision-state> <version>${project.version}</version> </dependency> |
Modifier le login webflow
Editer le fichier src/main/webapp/WEB-INF/login-webflow.xml et ajouter l'état suivant juste avant l'état viewLoginForm :
Bloc de code | ||||
---|---|---|---|---|
| ||||
<decision<action-state id="renewRequestCheckstartAuthenticate"> <if<action bean="negociateSpnego" /> <transition teston="${externalContext.requestParameterMap['renew'] != '' && externalContext.requestParameterMap['renew'] != null}" then="startAuthenticate" else="generateServiceTicketsuccess" to="spnego" /> </action-state> <action-state id="spnego"> <action bean="spnego" /> <transition on="success" to="sendTicketGrantingTicket" /> <transition on="error" to="viewLoginForm" /> </decisionaction-state> |
Déclarer le bean implémentant le nouvel état du webflow en ajoutant les lignes suivantes dans le fichier src/main/webapp/WEB-INF/cas-servlet.xml (par exemple juste avant le bean authenticationViaFormAction) Dans ce même fichier, remplacer les références à viewLoginForm par startAuthenticate pour les deux decision-state gatewayRequestCheck et renewRequestCheck :
Bloc de code | ||||
---|---|---|---|---|
| ||||
<bean <decision-state id="negociateSpnegogatewayRequestCheck"> class="org.jasig.cas.support.spnego.web.flow.SpnegoNegociateCredentialsAction" /> <bean <if idtest="spnego" class="org.jasig.cas.support.spnego.web.flow.SpnegoCredentialsAction"> <property name="centralAuthenticationService" ref="centralAuthenticationService"/> </bean> |
Modifier le schéma d'authentification
Pour modifier le schéma d'authentification, éditer le fichier src/main/webapp/WEB-INF/deployerConfigContext.xml et modifier le bean authenticationManager en ajoutant :
- PrincipalBearingCredentialsToPrincipalResolver après les resolvers existants de credentialsToPrincipalResolvers
- PrincipalBearingCredentialsAuthenticationHandler avant les handlers existants de authenticationHandlers
${externalContext.requestParameterMap['gateway'] != '' && externalContext.requestParameterMap['gateway'] != null && flowScope.service != null}"
then="redirect"
else="startAuthenticate" />
</decision-state> |
Bloc de code | ||||
---|---|---|---|---|
| ||||
<decision-state id="renewRequestCheck">
<if
test="${externalContext.requestParameterMap['renew'] != '' && externalContext.requestParameterMap['renew'] != null}"
then="startAuthenticate"
else="generateServiceTicket" />
</decision-state> |
Déclarer le bean implémentant le nouvel état du webflow en ajoutant les lignes suivantes dans le fichier src/main/webapp/WEB-INF/cas-servlet.xml (par exemple juste avant le bean authenticationViaFormAction) :
Bloc de code | ||||
---|---|---|---|---|
| ||||
<bean
id="negociateSpnego"
| ||||
Bloc de code | ||||
xml | xml | <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.authenticationweb.handlerflow.support.JCIFSSpnegoAuthenticationHandlerSpnegoNegociateCredentialsAction" /> <property name <bean id="authenticationspnego"> <bean class="jcifsorg.spnego.Authentication" /jasig.cas.support.spnego.web.flow.SpnegoCredentialsAction"> </property> <property name="principalWithDomainNamecentralAuthenticationService" valueref="truecentralAuthenticationService" /> <property name="NTLMallowed" value="false"/> </bean> <!-- ... the others authenticationHandlers... --> </list> </property> </bean> |
Le bean authenticationManager doit ainsi ressembler à :
</bean> |
Modifier le schéma d'authentification
Pour modifier le schéma d'authentification, éditer le fichier src/main/webapp/WEB-INF/deployerConfigContext.xml et modifier le bean authenticationManager en ajoutant :
- PrincipalBearingCredentialsToPrincipalResolver après les resolvers existants de credentialsToPrincipalResolvers
- PrincipalBearingCredentialsAuthenticationHandler avant les handlers existants de authenticationHandlers
Bloc de code | ||||
---|---|---|---|---|
| ||||
<bean id="authenticationManager" class="org.jasig.cas.authentication.AuthenticationManagerImpl"> <property name="credentialsToPrincipalResolvers"> <list> <!-- <bean class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" /> <bean class="org.jasig.cas.authentication.principal.HttpBasedServiceCredentialsToPrincipalResolver" /. 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> <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"<!-- ... the others authenticationHandlers... --> </list> </property> </bean> |
Le bean authenticationManager doit ainsi ressembler à :
Bloc de code | ||||
---|---|---|---|---|
| ||||
<bean id="authenticationManager" p:httpClient-ref="httpClient" /> <bean class="org.jasig.cas.adaptorsauthentication.ldap.FastBindLdapAuthenticationHandlerAuthenticationManagerImpl" > <property name="filter" value="uid=%u,ou=people,dc=univ-rennes1,dc=fr" /credentialsToPrincipalResolvers"> <list> <property name="contextSource" ref="contextSource <bean class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" /> </bean> <bean class="org.jasig.cas.authentication.principal.HttpBasedServiceCredentialsToPrincipalResolver" /> </list> </property> </bean> |
Ajouter enfin le bean jcifsConfig, qui done les options de configuration de JCIFS :
Bloc de code |
---|
<bean name="jcifsConfig" class="org.jasig.cas.support.spnego.authentication.handlerprincipal.support.JCIFSConfigSpnegoCredentialsToPrincipalResolver" /> <property name="jcifsServicePrincipal"</list> </property> <property valuename="HTTP/cas-kerb.univ-rennes1.fr" /authenticationHandlers"> <property <list> name="kerberosDebug" <bean valueclass="true" /> org.jasig.cas.support.spnego.authentication.handler.support.JCIFSSpnegoAuthenticationHandler"> <property name="kerberosRealmauthentication"> <bean valueclass="UNIV-RENNES1.FRjcifs.spnego.Authentication" /> <property</property> <property name="kerberosKdcprincipalWithDomainName" value="true" /> <property name="NTLMallowed" value="kerb1.univ-rennes1.fr" false"/> <property </bean> name<bean class="loginConforg.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" value="/etc/jcifs/login.conf p:httpClient-ref="httpClient" /> </bean> |
Configuration de JCIFS
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 |
---|
jcifs.spnego.initiate {
com.sun.security.auth.module.Krb5LoginModule
required
useKeyTab=true
keyTab="/etc/http.keytab"
};
jcifs.spnego.accept {
com.sun.security.auth.module.Krb5LoginModule
required
useKeyTab=true
keyTab="/etc/http.keytab"
}; |
Astuce |
---|
On peut également ajouter l'option debug=true pour obtenir des informations dans catalina.out. |
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 |
---|
JAVA_OPTS="$JAVA_OPTS -Djavax.security.auth.useSubjectCredsOnly=false" |
Test
<bean class="org.jasig.cas.adaptors.ldap.FastBindLdapAuthenticationHandler" >
<property name="filter" value="uid=%u,ou=people,dc=univ-rennes1,dc=fr" />
<property name="contextSource" ref="contextSource" />
</bean>
</list>
</property>
</bean>
|
Ajouter enfin le bean jcifsConfig, qui done les options de configuration de JCIFS :
Bloc de code |
---|
<bean name="jcifsConfig" class="org.jasig.cas.support.spnego.authentication.handler.support.JCIFSConfig">
<property
name="jcifsServicePrincipal"
value="HTTP/cas-kerb.univ-rennes1.fr" />
<property
name="kerberosDebug"
value="true" />
<property
name="kerberosRealm"
value="UNIV-RENNES1.FR" />
<property
name="kerberosKdc"
value="kerb1.univ-rennes1.fr" />
<property
name="loginConf"
value="/etc/jcifs/login.conf" />
</bean> |
Configuration de JCIFS
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 {
com.sun.security.auth.module.Krb5LoginModule
required
debug=true
storeKey=true
useKeyTab=true
keyTab="/etc/http.keytab"
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 |
---|
JAVA_OPTS="$JAVA_OPTS -Djavax.security.auth.useSubjectCredsOnly=false" |
Test
Un Un navigateur bien configuré et possédant des credentials Kerberos valides doit maintenant se connecter au serveur CAS sans aucune interaction....
Ajout de l'alimentation Kerberos
L'alimentation Kerberos désigne le processus qui permet d'alimenter un royaume Kerberos avec comptes utilisateurs lors de la connexion au serveur CAS. Elle peut être utilisée pour amorcer le remplissage du royaume à partir d'un annuaire LDAP, ce que nous montrons dans cet exemple.
Configuration de Kerberos
...
Ajout de l'alimentation Kerberos
L'alimentation Kerberos désigne le processus qui permet d'alimenter un royaume Kerberos avec comptes utilisateurs lors de la connexion au serveur CAS. Elle peut être utilisée pour amorcer le remplissage du royaume à partir d'un annuaire LDAP, ce que nous montrons dans cet exemple.
Configuration de Kerberos
En premier lieu, déclarer le principal qui servira à la mise à jour du royaume Kerberos (ici cas/admin) et l'exporter dans le fichier /etc/cas-admin.keytab :
Bloc de code |
---|
[root@cas-kerb ~]# kadmin -p root/admin Authenticating as principal root/admin with password. Password for root/admin@UNIV-RENNES1.FR: kadmin: addprinc -randkey cas/admin WARNING: no policy specified for cas/admin@UNIV-RENNES1.FR; defaulting to no policy Principal "cas/admin@UNIV-RENNES1.FR" created. kadmin: ktadd -k /etc/cas-admin.keytab |
...
Bloc de code |
---|
[root@cas-kerb ~]# kadmin -p root/admin Authenticating as principal root/admin with password. Password for root/admin@UNIV-RENNES1.FR: kadmin: addprinc -randkey cas/admin WARNING: no policy specified for cas/admin@UNIV-RENNES1.FR; defaulting to no policy Principal "cas/admin@UNIV-RENNES1.FR" created. kadmin: ktadd -k cas/admin Entry for principal cas/admin with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/cas-admin.keytab. Entry for principal cas/admin with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/cas-admin.keytab cas/admin. Entry for principal cas/admin with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/cas-admin.keytab. Entry for principal cas/admin with kvno 3, encryption type ArcFourDES cbc mode with HMAC/md5 added to keytab WRFILE:/etc/ RSA-MD5 added to keytab WRFILE:/etc/cas-admin.keytab. kadmin: exit [root@cas-kerb ~]# |
Le fichier cas-admin.keytab doit être lisible par l'utilisateur tomcat :
Bloc de code |
---|
[root@cas-kerb ~]# cd /etc [root@cas-kerb etc]# chown root:tomcat cas-admin.keytab. Entry for principal cas/admin with kvno 3, encryption type DES with HMAC/sha1 added to keytab WRFILE:/etc/cas-admin.keytab. Entry for principal cas/admin with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/cas-admin.keytab. kadmin: exit [root@cas-kerb etc]# chmod 640 cas-admin.keytab [root@cas-kerb etc]# |
Il est également nécessaire de modifier les permissions du fichier de log de kadmin sans quoi l'appel de kadmin par l'utilisateur tomcat provoquerait une erreur.
Bloc de code |
---|
[root@cas-kerb ~]# cd /var/log [root@cas-kerb log]# touch kadmind.log [root@cas-kerb log]# chown root:tomcat kadmind.log [root@cas-kerb log]# chmod 664 kadmind.log [root@cas-kerb ~log]# |
Intégration du module cas-server-integration-kerberosfeed
...
Bloc de code | ||||
---|---|---|---|---|
| ||||
<bean id="kerberosFeedConfig" class="org.esupportail.cas.adaptors.kerberosfeed.KerberosFeedConfig"> <property name="kadminPath" value="/usr/kerberos/bin/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> |
...
Les informations seront ici stockées dans le répertoire /tmp.
Test
Se connecter sur le serveur CAS avec un utilisateur de l'annuaire LDAP (par exemple dupont) et vérifier qu'il est bien ajouté dans la base Kerberos (getprinc dupont sous kadmin sur le KDC).