Forums de discussion

Problème d'intégration du ticket CAS

Mickael ROMME, modifié il y a 6 années.

Problème d'intégration du ticket CAS

New Member Publications: 15 Date d'inscription: 05/05/17 Publications récentes
Bonjour,

Je rencontre un problème pour configurer mon environnement liferay avec une authentification CAS et LDAP.
La connexion LDAP fonctionne bien, j'arrive à me connecter sans passer par CAS.
Une fois que j'active CAS, là je suis renvoyé sur la page d'accueil de liferay.

Pourtant le service CAS semble fonctionner :
cas.log :
2017-05-24 16:30:29,586 INFO [org.jasig.cas.authentication.PolicyBasedAuthenticationManager] - LdapAuthenticationHandler successfully authenticated xxx+password
2017-05-24 16:30:29,586 INFO [org.jasig.cas.authentication.PolicyBasedAuthenticationManager] - Authenticated xxxwith credentials [xxx+password].
2017-05-24 17:11:23,714 INFO [org.jasig.cas.CentralAuthenticationServiceImpl] - Granted service ticket [num_ticket] for service [https://portail/web/guest] for user [xxx]
2017-05-24 16:30:42,566 INFO [org.jasig.cas.services.DefaultServicesManagerImpl] - Reloading registered services.
2017-05-24 16:30:42,566 INFO [org.jasig.cas.services.DefaultServicesManagerImpl] - Loaded 1 services.
2017-05-24 16:32:42,567 INFO [org.jasig.cas.services.DefaultServicesManagerImpl] - Reloading registered services.
2017-05-24 16:32:42,567 INFO [org.jasig.cas.services.DefaultServicesManagerImpl] - Loaded 1 services.

cas_authentification.log :
2017-05-24 17:11:23,715 INFO [com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Audit trail record BEGIN
=============================================================
WHO: xxx
WHAT: num_ticket for https://portail/web/guest
ACTION: SERVICE_TICKET_CREATED
APPLICATION: CAS
WHEN: Wed May 24 17:11:23 CEST 2017
CLIENT IP ADDRESS: mon poste
SERVER IP ADDRESS: cas
=============================================================

Quelqu'un peut-il m'aider à résoudre ce problème ? Merci d'avance pour vos réponses.

Cordialement,
Jean Paul Da Cunha, modifié il y a 6 années.

RE: Problème d'intégration du ticket CAS

New Member Publications: 5 Date d'inscription: 26/05/17 Publications récentes
Bonjour,

Pourrais-tu essayer en désactivant l'authentification LDAP ? Je pense que c'est la cohabitation des deux qui pose problème

Cordialement

Mickael ROMME:
Bonjour,

Je rencontre un problème pour configurer mon environnement liferay avec une authentification CAS et LDAP.
La connexion LDAP fonctionne bien, j'arrive à me connecter sans passer par CAS.
Une fois que j'active CAS, là je suis renvoyé sur la page d'accueil de liferay.

Pourtant le service CAS semble fonctionner :
cas.log :
2017-05-24 16:30:29,586 INFO [org.jasig.cas.authentication.PolicyBasedAuthenticationManager] - LdapAuthenticationHandler successfully authenticated xxx+password
2017-05-24 16:30:29,586 INFO [org.jasig.cas.authentication.PolicyBasedAuthenticationManager] - Authenticated xxxwith credentials [xxx+password].
2017-05-24 17:11:23,714 INFO [org.jasig.cas.CentralAuthenticationServiceImpl] - Granted service ticket [num_ticket] for service [https://portail/web/guest] for user [xxx]
2017-05-24 16:30:42,566 INFO [org.jasig.cas.services.DefaultServicesManagerImpl] - Reloading registered services.
2017-05-24 16:30:42,566 INFO [org.jasig.cas.services.DefaultServicesManagerImpl] - Loaded 1 services.
2017-05-24 16:32:42,567 INFO [org.jasig.cas.services.DefaultServicesManagerImpl] - Reloading registered services.
2017-05-24 16:32:42,567 INFO [org.jasig.cas.services.DefaultServicesManagerImpl] - Loaded 1 services.

cas_authentification.log :
2017-05-24 17:11:23,715 INFO [com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Audit trail record BEGIN
=============================================================
WHO: xxx
WHAT: num_ticket for https://portail/web/guest
ACTION: SERVICE_TICKET_CREATED
APPLICATION: CAS
WHEN: Wed May 24 17:11:23 CEST 2017
CLIENT IP ADDRESS: mon poste
SERVER IP ADDRESS: cas
=============================================================

Quelqu'un peut-il m'aider à résoudre ce problème ? Merci d'avance pour vos réponses.

Cordialement,
Mickael ROMME, modifié il y a 6 années.

RE: Problème d'intégration du ticket CAS

New Member Publications: 15 Date d'inscription: 05/05/17 Publications récentes
Bonjour,

Tout d'abord je te remercie pour ton aide.

J'avais effectivement laissé l'authentification LDap cochée en plus de l'authentification CAS.
Mais une fois cochée, cela ne fonctionne pas mieux.

Au niveau de la configuration CAS, j'ai configuré les 2 URL (URL de serveur et URL de service) de manière identique car je ne vois pas trop quelle est la différence entre les 2 : https://portail/web/guest.
Dans ce cas, je suis toujours renvoyé vers la page de login, sans que la session ne soit ouverte.

Si je ne mets rien, liferay tente de me renvoyer vers la page c/portal/login, mais j'obtiens une page blanche.

Enfin, si je renseigne ces url avec l'url sur laquelle j'arrive lorsque le cas n'est pas activé :
https://portail/group/control_panel/manage?p_p_id=com_liferay_portal_settings_web_portlet_PortalSettingsPortlet&p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view&_com_liferay_portal_settings_web_portlet_PortalSettingsPortlet_mvcRenderCommandName=%2Fportal_settings%2Fview
La le serveur part en boucle et effectue sans cesse des redirection en "/group/control_panel/manage..." et "/c/portal/login"
thumbnail
Laurent REMY, modifié il y a 6 années.

RE: Problème d'intégration du ticket CAS

New Member Publications: 11 Date d'inscription: 01/12/14 Publications récentes
Bonjour Mickaël,

j'ai rencontré plusieurs difficultés chez un client avec le CAS.

Une piste à suivre: vérifier la protection contre le phishing
Vérifier la configuration de la protection contre le phishing: session.enable.phishing.protection dans portal-ext.properties.
Normalement la valeur devrait être true, mais tu peux la tester à false dans un premier temps pour voir si le problème vient de là. Si ça passe bien avec false, vérifies que les attributs qui contiennent les infos d'authentification survivent bien au changement de session; pour ça, ils doivent être listés dans session.phishing.protected.attributes.

En gros, ce qui se passe, c'est que l'authentification CAS est réalisée sur une session guest. Il fait sa tambouille et stocke les infos nécessaires dans la session. La protection contre le phishing copie ensuite les valeurs des attributs de session.phishing.protected.attributes, détruit la session guest et créé une nouvelle session puis y recopie les valeurs des attributs.
Note: le mécanisme anti-phishing de Liferay était buggé en 6.1, corrigé en 6.2.

Chez mon client, aucun attribut n'avait été configuré dans session.phishing.protected.attributes, du coup le CAS indiquait bien que l'authentification avait réussi, mais les attributs contenant le CAS_LOGIN, le PGT etc. n'étaient pas recopiés, donc Liferay ne retrouvait pas ses billes et on passait son temps à s'authentifier.

Laurent
Darryl Kpizingui, modifié il y a 6 années.

RE: Problème d'intégration du ticket CAS

Junior Member Publications: 82 Date d'inscription: 10/01/13 Publications récentes
Bonjour Mickael ,

Il y a t-il un message d'erreur au niveau de Liferay?

Le serviceURL est utilisé si défini. Sinon le nom du serveur est utilisé pour construire l'URL de redirection. ServiceURL est nécessaire par exemple si vous avez défini des services au niveau du cas.

Le CAS est il configuré pour envoyé à Liferay le login qui permet de faire la connexion? Le login doit correspondre à ce qui est utilisé dans Liferay email, screenName, userId.

L'utilisateur existe déjà dans Liferay? Liferay peut il l'importer à partir du LDAP en utilisant le login fournit par le CAS?
Mickael ROMME, modifié il y a 6 années.

RE: Problème d'intégration du ticket CAS

New Member Publications: 15 Date d'inscription: 05/05/17 Publications récentes
Bonjour Darryl,

Si je renseigne l'url de service avec les valeurs https://portail/web/guest ou https://portail/group/control_panel/manage ... je n'ai aucun message au niveau de liferay.

Par contre, si je laisse le champ vide j'obtiens les erreurs ci-jointe.

Aucun service n'est défini au niveau du CAS.
Au niveau des log de CAS, je vois bien qu'il récupère mon login et mon mot de passe. On voit bien qu'un numéro de ticket est créé. Mais je ne sais pas dire s'il est bien envoyé à Liferay.

L'utilisateur existe bien dans la table user_ de liferay. J'arrive bien à me connecter avec lorsque je désactive CAS.

Pièces jointes:

Jean Paul Da Cunha, modifié il y a 6 années.

RE: Problème d'intégration du ticket CAS

New Member Publications: 5 Date d'inscription: 26/05/17 Publications récentes
Bonjour,

J'ai fouillé dans mes tablette et retrouvé une configuration qui a fonctionné en 6.2 la voici (je sais que tu utilises la 7.0 mais c'est un début):

##
## CAS
##

#
# Set this to true to enable CAS single sign on. NTLM will work only if
# LDAP authentication is also enabled and the authentication is made by
# screen name. If set to true, then the property "auto.login.hooks" must
# contain a reference to the class
# com.liferay.portal.security.auth.CASAutoLogin and the filter
# com.liferay.portal.servlet.filters.sso.cas.CASFilter must be referenced
# in web.xml.
#
cas.auth.enabled=false

#
# A user may be authenticated from CAS and not yet exist in the portal. Set
# this to true to automatically import users from LDAP if they do not exist
# in the portal.
#
cas.import.from.ldap=true

#
# Set the default values for the required CAS URLs. Set either
# "cas.server.name" or "cas.service.url". Setting "cas.server.name" allows
# deep linking. See LEP-4423.
#
cas.login.url=https://<CAS_SERVEUR>/cas/login
cas.logout.url=https://<CAS_SERVEUR>/cas/logout
cas.server.url=https://<CAS_SERVEUR>/cas
cas.server.name=http://<PORTAL_HOSTNAME>
cas.service.url=
cas.no.such.user.redirect.url=<PORTAL_HOSTNAME>

#
# Set this to true to log out the user from CAS when the portal session
# expires.
#
cas.logout.on.session.expiration=false

Pour t'aider tu peux également via la control panel de Liferay mettre la classe CASAutologin en debug. Tu verras mieux ce qui se passe

Cordialement
Mickael ROMME, modifié il y a 6 années.

RE: Problème d'intégration du ticket CAS

New Member Publications: 15 Date d'inscription: 05/05/17 Publications récentes
Bonjour Jean-Paul,

Je ne comprends pas pourquoi, il faut mettre la propriété "cas.auth.enabled=false", cela va désactiver l'utilisation de cas ?

En lorsque que j'active le cas et que je ne renseigne pas l'url de service, j'obtiens une page blanche avec l'erreur suivante dans liferay :
15:39:47,776 ERROR [http-nio-8080-exec-1][CommonUtils:225] https://portail/proxyValidate?redirectAfterValidation=false&ticket=ST-1-AQuGtdAaFdc3C7FUKSjL-cas&service=http%3A%2F%2Fportail%2Fc%2Fportal%2Flogin%3Fp_l_id%3D20150&serverName=portail&casServerLoginUrl=https://cas/cas/login&casServerUrlPrefix=https://portail
java.io.FileNotFoundException: https://portail/proxyValidate?redirectAfterValidation=false&ticket=ST-1-AQuGtdAaFdc3C7FUKSjL-cas&service=http%3A%2F%2Fportail%2Fc%2Fportal%2Flogin%3Fp_l_id%3D20150&serverName=portail&casServerLoginUrl=https://cas/cas/login&casServerUrlPrefix=https://portail

J'ai l'impression que liferay n'arrive pas à construire l'url de retour.

Pour info, le portail et le cas sont installés sur la même machine mais accessible via des noms de domaines différents. Je ne sais pas si ça peut avoir un impact.
Jean Paul Da Cunha, modifié il y a 6 années.

RE: Problème d'intégration du ticket CAS

New Member Publications: 5 Date d'inscription: 26/05/17 Publications récentes
Bonjour,

C'est une erreur sorry il faut bien mettre true :-)

Oui le fait d'avoir des noms de domaines différents peut effectivement avoir un impact car le mécanisme sso de CAS se base sur un cookie partagé entre les sites. Si le nom de domaine est différent il est possible que le cookie ne soit pas vu d'un domaine à l'autre.

Essais de regarder si un cookie est positionné lorsque tu est redirigé sur Liferay après authentification. As-tu essayer de mettre la classe que je t'ai indiqué en debug ? Tu peux le faire simplement en ajoutant une categorie depuis le Panneau de commande de Liferay.

Cordialement
Jean Paul Da Cunha, modifié il y a 6 années.

RE: Problème d'intégration du ticket CAS

New Member Publications: 5 Date d'inscription: 26/05/17 Publications récentes
Autre point en regardant ton URL j'ai l'impression que ton serveur CAS est configuré en mode proxy.

https://wiki.jasig.org/display/CAS/Proxy+CAS+Walkthrough

Je ne suis pas certain mais je ne pense pas que le connecteur CAS de Liferay le supporte

Cordialement
Mickael ROMME, modifié il y a 6 années.

RE: Problème d'intégration du ticket CAS

New Member Publications: 15 Date d'inscription: 05/05/17 Publications récentes
J'ai ajouté le classe com.liferay.portal.security.auth.CASAutoLogin dans les niveaux de journalisation. Mais même après redémarrage, je n'obtiens pas de logs supplémentaires.

J'ai bien des cookies de créés pour chaque application et chaque domaine.
Je vais essayer de regrouper les deux applications dans le même et désactiver le mode proxy du CAS et reviens vers toi.
Mickael ROMME, modifié il y a 6 années.

RE: Problème d'intégration du ticket CAS

New Member Publications: 15 Date d'inscription: 05/05/17 Publications récentes
Merci Laurent pour ces explications.
Le passage a false du paramètre "session.enable.phishing.protection" n'apporte pas d'amélioration.
J'utilise la version 7.0.2 GA3 de liferay.
Mickael ROMME, modifié il y a 6 années.

RE: Problème d'intégration du ticket CAS

New Member Publications: 15 Date d'inscription: 05/05/17 Publications récentes
Bonjour,

Pas mieux en utilisant un CAS sur le même domaine. Je vais avancer sans passer par CAS. Un consultant vient nous former mi-juin, je lui poserais la question et vous tiendrais informé.

Merci à tous pour vos interventions.
Mickael ROMME, modifié il y a 6 années.

RE: Problème d'intégration du ticket CAS

New Member Publications: 15 Date d'inscription: 05/05/17 Publications récentes
Bonjour,

J'ai finalement réussi à faire marcher CAS en renseignant les paramètres suivants :
cas.login.url=https://cas/cas/login
cas.logout.url=https://cas/cas/logout
cas.server.url=https://cas/cas
cas.server.name=https://cas
cas.service.url=https://portail/c/portal/login

Le problème venait de l'import des utilisateurs dans le portail depuis le LDap que ce soit en version 7.0.3 GA3 ou GA4.
En GA3, si je tente de me connecter avec un utilisateur qui n'existe pas dans Liferay, j'obtiens une page blanche et l'utilisateur n'est pas connecté.
En GA4, si je tente de me connecter avec un utilisateur qui n'existe pas dans Liferay, j'obtiens une page blanche et mais cette fois l'utilisateur est connecté. En relançant, l'url de connexion, j'obtiens la page souhaitée et l'utilisateur est ajouté au portail.

En tout cas, merci à tous pour votre aide.