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: Migrated to Confluence 5.3
Astuce
titleAdaptation d'un serveur CAS existant

Cette page décrit l'installation de A à Z d'un nouveau serveur CAS qui permet :

  • l'authentification transparente des utilisateurs par la transmission de tickets Kerberos
  • l'alimentation automatique d'un royaume Kerberos à partir des utilisateurs LDAP lors de leur connexion

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)
https https (443)

Installation système

...

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
titleSuppression de l'accès en HTTP

Ne pas oublier de supprimer la ligne suivante de /etc/httpd/conf/httpd.conf :

Bloc de code
Listen 80

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]# http.keytab
[root@cas-kerb etc]# chmod 640 http.keytab
[root@cas-kerb etc]#
Astuce
titleDebug

Ajouter dans le fichier /etc/tomcat5/tomcat5.conf les lignes suivantes :

Bloc de code
JAVA_OPTS="$JAVA_OPTS -Dcom.ibm.security.jgss.debug=all"
JAVA_OPTS="$JAVA_OPTS -Dsun.security.jgss.debug=true"
JAVA_OPTS="$JAVA_OPTS -Dsun.security.krb5.debug=true"
JAVA_OPTS="$JAVA_OPTS -Djava.security.debug=logincontext,policy,scl,gssloginconfig

Les logs se trouvent dans /var/log/tomcat5/catalina.out.

Configuration de CAS

Ajouter le support du handler spnego

...

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.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
  required
  storeKey=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
xml
xml
<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&amp;~#{([-|`\\_^@)]=+}$%*!:/;.,?&gt;&lt;" />
</bean>

...