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.

...

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

On a donc validé les paramètres de communication avec le serveur CAS très simplement.

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>

Rem : si on ne veut pas valider le certificat du serveur https lors du wget, il suffit de remplacer --ca-certificate=/Cert/ac-racine.pem par --no-check-certificate ; un warning sera néammoins affiché lors du wget.

...

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 mécanismes de cache coté serveur sont connus, cyrus-saslauthd et pam_ccreds ; il existe aussi la solution imapproxy.

cyrus - saslauthd

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

...

Un intérêt essentiel de saslauthd est le fait qu'il est capable de conserver en cache plusieurs mots de passe pour un utilisateur ; ceci permet d'optimiser le mécanisme lorsque des sources différentes (ent, webmail, client lourd) génèrent en parralèle des requêtes IMAP, avec chacune un mot de pase différent.

pam_ccreds

C'est un module pam qui permet de cacher les mots de passe.

Il est développé par PADL Software.

Des patchs ont été proposés par Nicolas Bouillis fin de l'adapter au cache de ticket, et à apporter des fonctionnalités supplémentaires.

Une documentation de mise en oeuvre est proposée par Damien Mascré (IUT Villetaneuse - Paris 13).

Voir également un échange de mails à ce sujet sur la liste esup-devel.

Pour les personnes qui ne sont pas abonnées à cette liste, ce mail est également disponible, ainsi que le document attaché (patchs).

imapproxy

C'est une solution utilisée par certains établissements, qui semble donner satisfaction.

...