Pages enfant
  • 01 - Installation et paramétrage de pam_cas

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.

 

Sommaire

Généralités

pam_cas est un module qui permet à un 'service' UNIX sachant authentifier via pam d'utiliser le mécanisme de SSO du CAS.

...

Sur redhat, le package pam-devel doit également être installé.

  • cd sources
  • cp ln -s Makefile.Redhat Makefile (sous redhat, ou autre Makefile en fonction de l'OS).
  • make (compilation et création du module pam_cas.so)
  • make test (si vous désirez utiliser le binaire castest)

...

Tenter un ./castest sans paramètre : il doit afficher un message d'erreur du genre :

Bloc de code

unable to open config file "/etc/pam_cas.conf"
Error while reading config file. Error 1
cannot open it

...

Ce fichier suppose que imap tente l'authentification CAS, puis LDAP, puis UNIX

Bloc de code

auth sufficient /lib/security/pam_cas.so \-simap://imap.univ.fr \-f/etc/pam_cas.conf
auth sufficient /lib/security/pam_ldap.so
auth required /lib/security/pam_pwdb.so shadow nullok
account required /lib/security/pam_pwdb.so shadow nullok

...

exemple d'utilisation :

Bloc de code

$PAM_CAS_SOURCES/castest <service> <ticket> <fichier_de_configuration>

Il est possible de le lancer sans paramètres. Avec un fichier de configuration correctement paramétré, la sortie est la suivante :

Bloc de code

--------------------------------------------------------------\-
Parameters from test :
host = auth.univ-nancy2.fr
port = 443
uri = /proxyValidate
ssl = on
trusted_ca = /Cert/ac-racine.pem
debug = localtest
proxy = [https://imp.univ.fr/cas/casProxy.php]
proxy = [https://ent.univ.fr/CasProxyServlet]
service = [https://foo.fr]
ticket = PT-1-xxx
\--------------------------------------------------------------\-
authentication failure
<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
<cas:authenticationFailure code='INVALID_TICKET'>
ticket 'PT-1-xxx' not recognized
</cas:authenticationFailure>
</cas:serviceResponse>
\--------------------------------------------------------------\-
invalid ticket : bad CAS ticket

...

Si problème, s'assurer avec wget que la machine qui supporte pam_cas arrive bien à communiquer avec le serveur CAS. Par exemple :

Bloc de code

wget \--ca-certificate=/Cert/ac-racine.pem \-O /tmp/cas.log "https://auth.univ.fr:443/proxyValidate?ticket=PT-1-xxx&service=[https://foo.fr]"

Le contenu du fichier /tmp/cas.log contient la réponse du serveur CAS ; il devrait être :

Bloc de code

<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
<cas:authenticationFailure code='INVALID_TICKET'>
ticket 'PT-1-xxx' not recognized
</cas:authenticationFailure>
</cas:serviceResponse>

...

Pour des raisons de performance, il est souvent nécessaire de "cacher" ce ticket afin de pouvoir le rejouer plusieurs fois.

Ce documentdécrit document décrit l'exemple d'imap. Imap est utilisé par les webmail (cassifiés), l'ent (cassifié) et les clients de messagerie (non cassifié).

...

Il serait très couteux que le webmail redemande un nouveau ticket pour chaque ouverture de connexion IMAP ; un cache doit donc être installé côté serveur, et le code du client webmail doit être modifié afin de gérer au mieux ce mécanisme de cache.

Deux Plusieurs mécanismes de cache coté serveur sont connus, cyrus-saslauthd et pam_ccreds ; il existe aussi la solution imapproxy.. Nous conseillons l'utilisation de cacheDirectory dans esup-pam-cas (fonctionnalité ajoutée dans la version 2.0.11-esup-2.0.6)

esup-pam-cas cacheDirectory

Avant l'activation :

  • configurer pam_cas_expire.conf (optionnel)
  • mettre en place un cron exécutant le script pam_cas_expire

Puis activer l'option cacheDirectory dans pam_cas.conf

cyrus - saslauthd

C'est un démon qui est livré avec la distribution cyrus-imap.

...