[SSO] Authentification via CAS

cancel
Showing results for 
Search instead for 
Did you mean: 
loic
Member II

[SSO] Authentification via CAS

Bonjour

Avant toutes chose, le serveur CAS fonctionne correctement. J'arrive à m'authentifier sur Liferay avec.

J'ai parcouru en long en large et en travers le Wiki et les forums (FR et US) d'alfresco et je ne parviens toujours pas à faire ce que je souhaite.
J'ai suivi cet article et j'ai quelques difficultés.

Dans l'article il est question de deux classes java (BaseServlet.java et CasAuthenticationFilter.java) à modifier puis recompiler.

1 - CasAuthenticationFilter.java remplace t il NovellIChainsHTTPRequestAuthenticationFilter.java ? l'article du wiki peut porter à confusion.
2 - J'ai téléchargé le SDK, mis en place avec éclipse etc. mais je ne trouve pas ces classes. Où sont elles ? Dois-je re télécharger tout via SVN ? Si oui, y a il un autre moyen pour récupérer un snapshot du svn que d'utiliser un client SVN (le proxy là où je travaille n'est pas très coopératif) ?
3 - Si je puis me permettre une suggestion, pourquoi de pas attacher les fichiers .class à l'article du wiki ?

Merci d'avance pour vos réponses Smiley Happy
14 Replies
lme
Partner

Re: [SSO] Authentification via CAS

J'ai parcouru en long en large et en travers le Wiki et les forums (FR et US) d'alfresco et je ne parviens toujours pas à faire ce que je souhaite.
J'ai suivi cet article et j'ai quelques difficultés.
La version originale et en français se trouve ici : http://wiki.alfresco.com/fr/index.php/Documentation:L'authentification_unique_avec_CAS

1 - CasAuthenticationFilter.java remplace t il NovellIChainsHTTPRequestAuthenticationFilter.java ? l'article du wiki peut porter à confusion.
Non, CasAuthentifcationFilter.java se base sur NovellIChainsHTTPRequestAuthenticationFilter.java mais ne le replace pas.

2 - J'ai téléchargé le SDK, mis en place avec éclipse etc. mais je ne trouve pas ces classes. Où sont elles ? Dois-je re télécharger tout via SVN ? Si oui, y a il un autre moyen pour récupérer un snapshot du svn que d'utiliser un client SVN (le proxy là où je travaille n'est pas très coopératif) ?
La classe CasAuthenticationFilter.java n'existe pas, c'est une nouvelle classe qu'il faut ajouter. La classe BaseServlet.java se trouve dans l'archive web-client-src.zip, et plus précisement dans le chemin /java/org/alfresco/web/app/servlet/.

3 - Si je puis me permettre une suggestion, pourquoi de pas attacher les fichiers .class à l'article du wiki ?
De mémoire, il n'est pas possible d'ajouter des fichiers .class dans le wiki. Cela a peut-être changer depuis le temps… il faudrait réessayer.

Merci d'avance pour vos réponses Smiley Happy
De rien Smiley Happy
loic
Member II

Re: [SSO] Authentification via CAS

Merci pour ta réponse. Smiley Happy

Je vais retenter avec ces nouvelles infos !

Merci encore d'avoir pris le temps de répondre (parce que ça prend du temps de faire autant de quote ^^)
loic
Member II

Re: [SSO] Authentification via CAS

Bon ça fonctionne presque.

Je m'explique :

- je m'authentifie via cas sur liferay (sign-in > redirection vers cas-web/login etc.) donc tout va bien (j'ai un ticket).

- le problème est quand je mets l'url d'alfresco j'ai ce message :
edu.yale.its.tp.cas.client.CASAuthenticationException: Unable to validate ProxyTicketValidator [[edu.yale.its.tp.cas.client.ProxyTicketValidator proxyList=[null] [edu.yale.its.tp.cas.client.ServiceTicketValidator casValidateUrl=[https://172.31.52.229:8443/cas-web/serviceValidate] ticket=[ST-7-cdlM54Pn1Nlkkr5rdtZX-cas] service=[http%3A%2F%2F172.31.52.229%3A8181%2Falfresco%2Ffaces%2Fjsp%2Fdashboards%2Fcontainer.jsp] renew=false]]]
caused by:
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names present
caused by:
java.security.cert.CertificateException: No subject alternative names present

Donc je me dit qu'il y a un problème avec mon certificat et j'ai donc suivi la procédure pour régénérer mon certificat comme indiqué ici (http://www.ja-sig.org/products/cas/server/ssl/index.html) mais ça ne fonctionne toujours pas.

J'ai également cherché du coté de mon "casclient.jar" (j'ai pris celui que j'avais dans liferay) et j'ai cherché à le remplacer par celui du site officiel (mais peut-être sont-ce déjà les mêmes)

Bref je suis un peu bloqué…

Autre chose aussi : Ai-je besoin qu'Alfresco sache s'authentifier via un annuaire LDAP (avec les fichiers chaining-authentication-context.xml et ldap-authentication-context.xml) pour l'authentificaiton via CAS car vu que CAS va déjà voir dans LDAP je me suis dit qu'il n'y en avait pas besoin mais je me trompe peut-être…

Merci de vos réponses Smiley Happy
lme
Partner

Re: [SSO] Authentification via CAS

Effectivement, on dirait qu'il y a un problème dans le certificat, on dirait qu'un champ n'est pas renseigné. Quelques points à vérifier :
- as-tu bien utiliser des noms de domaine dans le certificat (ne jamais utiliser d'adresse IP dans un certificat !) ?
- il faut également appeler le serveur CAS via son nom de domaine et pas son adresse IP (comme c'est le cas actuellement : http://172.31.52.229/…)
- le certificat a-t-il été ajouté dans le keystore de la JRE qui démarre Alfresco ?

Autre chose aussi : Ai-je besoin qu'Alfresco sache s'authentifier via un annuaire LDAP (avec les fichiers chaining-authentication-context.xml et ldap-authentication-context.xml) pour l'authentificaiton via CAS car vu que CAS va déjà voir dans LDAP je me suis dit qu'il n'y en avait pas besoin mais je me trompe peut-être…

Non, c'est CAS qui gère l'authentification. Que CAS utilise un annuaire ou une base de données, ça ne change rien côté Alfresco. Par contre, tu peux mettre en place l'import des utilisateurs depuis un annuaire, ça permet de récupérer divers infos comme le nom, le prénom, l'adresse email.
loic
Member II

Re: [SSO] Authentification via CAS

C'est bon ça fonctionne Smiley Happy

Le problème venait bien du certificat (j'avais mis localhost et j'avais bien noté sur le site linké dans mon précédent message qu'il ne fallait pas mettre l'ip). J'ai changé tous les localhost et @ip par le nom de ma machine (ipconfig /all) changé localhost dans les fichiers de conf etc par ce nom et hop magie !

Je vais essayer (en fait je dois le faire pour mon rapport de stage donc bon…) de faire une doc claire pour l'installation de liferay + alfresco + mysql + openldap + CAS et je vais la poster ici si ça intéresse des gens.

Encore merci !
lme
Partner

Re: [SSO] Authentification via CAS

Bonne nouvelle ! Ce n'est pas forcement évident de mettre en place tous ces éléments.
Pour la doc, elle aurait plus sa place sur le wiki que sur le forum.
ericc
Member II

Re: [SSO] Authentification via CAS

C'est bon ça fonctionne Smiley Happy

Je vais essayer (en fait je dois le faire pour mon rapport de stage donc bon…) de faire une doc claire pour l'installation de liferay + alfresco + mysql + openldap + CAS et je vais la poster ici si ça intéresse des gens.

Encore merci !

Ah oui bonne idée Smiley Happy Surtout la partie liferay / alfresco avec CAS & LDAP (MySQL est déjà bien expliqué sur le wiki fr me semble-t-il). Je m'y suis déjà tenté et j'ai eut qqes soucis pour configurer CAS avec LDAP et lié le tout avec liferay & alfresco (surtout qu'il y a des Portlets diverses pour intégrer alfresco à liferay, certaines très utiles et d'autres pas vraiment…).
loic
Member II

Re: [SSO] Authentification via CAS

En fait je viens de me rendre compte que CAS ne fait qu'une simple vérification (est ce que le login est identique au mot de passe ?) et ça n'est pas très sécure… Je cherche donc désormais à ce que CAS "regarde" dans LDAP.

Si j'y arrive je vous en ferait part mais pour le moment j'essaye de suivre ce lien > http://shibsp.ntu.ac.uk/confluence/display/Shibboleth/Install+and+Configure+CAS+Server+(Windows)

On verra bien…

@ericC > Je veux bien de tes retours sur tes "quelques soucis pour configurer CAS & LDAP".

Edit : Bon c'est bon le SSO fonctionne (grâce au lien ci dessus). J'ai un petit document word (écrit à un peu à la va vite hier) sous le coude qui explique "pas à pas" comment il faut faire… Si ça intéresse des gens de l'avoir/le lire/le "wikiiser" n'hésitez pas à me contacter.
loic
Member II

Re: [SSO] Authentification via CAS

Bon en fait j'ai uploadé ma "documentation" et on peut y accéder ici

Faites en ce que vous voulez Smiley Happy

Cordialement