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>
|
...