cicas : plugin d’authentification avec CAS pour SPIP

Le plugin « cicas » permet d’utiliser un serveur SSO (Single Sign-On), basé sur CAS (Central Authentication Service), pour s’authentifier dans SPIP. Il permet en particulier un mode d’authentification hybride.

Le plugin « cicas » permet d’utiliser un serveur SSO (Single Sign-On), basé sur CAS (Central Authentication Service), pour s’authentifier dans SPIP.

Pourquoi un plugin supplémentaire sur ce sujet ?

Il existe déjà un plugin « Une authentification SSO » qui permet d’utiliser le serveur SSO (Single Sign-On) CAS, pour authentifier les accès à l’espace public de SPIP. Toutefois, il ne correspond pas à certains besoins spécifiques auxquels le présent plugin doit répondre.

Rappel sur le Single Sign-On avec CAS

Une présentation sur le Single Sign-On avec CAS a été rédigée, par les auteurs du client PHP pour CAS (phpCAS), et est consultable à l’adresse suivante :
http://perso.univ-rennes1.fr/pascal.aubry/presentations/cas-jres2003/cas-jres2003-article.php

Les objectifs de ce plugin

L’objectif est d’utiliser le login et le mot de passe stocké dans le serveur d’authentification au lieu de ceux qui sont stockés dans SPIP. Cela évite à l’utilisateur de gérer ses mots de passe dans plusieurs sites (ou applications) et cela lui évite de s’authentifier à nouveau lorsqu’il passe d’un site à un autre.

Les fonctionnalités de ce plugin

On peut paramétrer ce plugin pour offrir une authentification CAS ou bien une authentification hybride (SPIP ou CAS). Dans ce dernier cas, chaque fois qu’il souhaitera s’authentifier, l’utilisateur pourra choisir soit de s’authentifier comme d’habitude avec SPIP, soit de cliquer sur le lien « Utiliser l’authentification centralisée » pour s’authentifier avec CAS.

Par paramétrage on peut choisir de comparer l’identifiant renvoyé par le serveur CAS au contenu du champ de SPIP contenant l’adresse électronique des auteurs, ou bien à celui contenant le login des auteurs.

Si plusieurs auteurs ont, dans SPIP, la même adresse de messagerie, il est nécessaire de savoir lequel retenir. Aussi, parmi les auteurs disposant de la même adresse de messagerie, celui qui a le plus de droits dans SPIP sera retenu. Si deux auteurs ont les mêmes droits, le premier par ordre alphabétique de nom d’auteur dans SPIP, sera retenu. Les auteurs dont le statut est « à la poubelle » ne seront jamais pris en compte.

L’authentification sur le site public redirige ensuite vers la page en cours, idem lors de la déconnexion.

Un paramétrage par fichier est possible. Il est prioritaire sur le paramétrage du plugin dans l’espace privé. Cela facilite le déploiement sur un grand nombre de sites.

Si un site est publié simultanément sur deux réseaux (par exemple intranet et internet) et que l’on veut pouvoir s’authentifier sur le site dans les deux cas, il peut être souhaitable que le serveur CAS soit accessible sur intranet et sur internet. Aussi, il convient de déterminer la provenance de l’auteur (intranet, internet, …) et d’aiguiller automatiquement sur l’adresse corrélative du serveur CAS (intranet, internet, …). Cette possibilité est offerte uniquement via le paramétrage par fichier.

Compatibilité

CICAS version 3.0 est compatible avec SPIP 3.0, 3.1, 3.2, 4.0, 4.1, 4.2.
CICAS version 3.0 est compatible avec PHP 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1.
Il surcharge une seule fonction de SPIP (« logout »).

Installation

Le plugin « cicas » s’installe comme tous les plugins, cf. http://www.spip.net/fr_article3396.html
Il contient le client phpCAS, ce qui évite de devoir installer ce dernier.
Il évite d’installer « composer » (gestionnaire de dépendances et chargeur automatique de classes) et « logger » (alors que ce sont des pré-requis de phpCAS version 1.6.1).

Le client phpCAS nécessite certains prérequis relatifs à PHP.

Paramétrage

Le paramétrage s’effectue dans le menu [Configuration] de SPIP, sous menu [Configurer CAS] :

Il est impératif sélectionner en premier le mode d’authentification intitulé "CAS ou SPIP" afin de vérifier, sans risque, le bon fonctionnement de l’authentification CAS.

Il convient de renseigner l’adresse du serveur CAS (sans la faire précéder de http://), le répertoire éventuel du serveur CAS (par exemple : /cas) et le port du serveur CAS (en général : 443).

Si l’identifiant renvoyé par le serveur CAS est l’adresse électronique de l’auteur, il est nécessaire de s’assurer que, dans SPIP, l’adresse de messagerie électronique de chaque auteur est bien renseignée.

Utilisation de l’authentification CAS
Au lieu d’accéder au formulaire d’authentification de SPIP, l’utilisateur est redirigé vers le formulaire d’authentification du serveur CAS.

Utilisation de l’authentification Hybride
Le plugin ajoute un lien « Utiliser l’authentification centralisée » dans le formulaire d’authentification de SPIP.

Chaque fois qu’il souhaitera s’authentifier, l’utilisateur pourra choisir soit de s’authentifier comme d’habitude avec SPIP, soit de cliquer sur le lien « Utiliser l’authentification centralisée » pour s’authentifier avec l’authentification centralisée.

Version 1.1 du plugin

La version 1.1 du plugin apporte :
-  La compatibilité avec la version 5.3 de PHP.
-  Pour mémoire, le plugin était déjà compatible avec la version 2.1 de SPIP.
-  Par défaut, l’ordre de recherche du HOST dans les variables HTTP est celui du client phpCAS. Si les pratiques de l’hébergeur ne sont pas compatibles avec l’ordre du client phpCAS, on peut définir dans le fichier de paramétrage l’ordre à prendre en compte.
-  La compatibilité avec d’anciennes adresses email est désormais paramétrable par fichier.
-  A titre de réservation, ajout d’une possibilité de pipeline.
-  L’utilisation de la version 1.1 du client phpCAS.

Version 1.2 du plugin

La version 1.2 du plugin corrige un bug.

Version 1.3 du plugin

La version 1.3 du plugin apporte l’utilisation de la version 1.2 du client phpCAS.

Version 1.32 du plugin

La version 1.32 du plugin apporte la compatibilité avec les versions 3.3.5 (et supérieures) des serveurs CAS.

Version 1.41 du plugin

La version 1.41 du plugin apporte l’utilisation de la version 1.3.1 du client phpCAS. Elle apporte également la compatibilité avec SPIP 3.

Version 1.44 du plugin

La version 1.44 du plugin évite un message inutile dans les fichiers de log de SPIP.

Version 1.5 du plugin

Prise en compte d’une évolution de SPIP 2.1.14 (logout en 2 étapes) dans la surcharge du fichier action/logout.php.
Passage à la version 1.3.2 de phpcas.
Possibilité de contrôler l’unicité de l’email lors de la création / modification d’un auteur (sauf si l’identifiant SSO est le login). Pour cela, il faut déclarer la constante ’_CICAS_ANTI_HACK’ dans le fichier config/mes_options.php avec la valeur ’oui’.

Version 1.6 du plugin

Le client PHP pour CAS (phpCAS), qui est livré avec le plugin, offre la possibilité d’utiliser une adresse pour le serveur CAS et une autre adresse lors de la validation du ticket, c’est-à-dire lorsque SPIP va interroger le serveur CAS.
La version 1.6 du plugin CICAS permet d’exploiter cette possibilité, via trois variables à ajouter dans le fichier de paramétrage. Ces trois variables sont décrites dans l’annexe du document de description du plugin, qui a été mise à jour corrélativement.

Version 1.8 du plugin

Dans le cas où le formulaire #LOGIN_PUBLIC était utilisé dans un squelette autre que celui de la page « login » (par exemple dans le squelette rubrique ou article si on utilise un certain plugin d’accès restreint), l’adresse de la page ne comprenait pas le paramètre « &url=... » comme c’est le cas pour la page « login ». Aussi, la redirection après authentification, vers une page particulière, ne pouvait pas s’effectuer. La version 1.8 de CICAS prend en compte désormais ce cas particulier.

Version 2.0 du plugin

  • Compatibilité avec SPIP 3.1.
  • Utilisation de la dernière version (1.3.4) de la librairie phpCAS.
  • Possibilité d’une protection anti robot d’indexation pour le formulaire de login, via la constante _CICAS_ANTI_BOT à placer dans un fichier d’options avec la valeur ’oui’.
  • Possibilité d’offrir à l’utilisateur le choix entre plusieurs serveurs CAS.
  • Possibilité de créer un auteur à la volée.

Version 2.1 du plugin

  • Compatibilité avec SPIP 3.2.
  • Utilisation de la dernière version (1.3.5) de la librairie phpCAS.

Pour plus de détails, se reporter à la documentation (mise à jour) du plugin CICAS jointe au présent article.

Version 2.2 du plugin

  • Compatibilité (sous SPIP 3.2) avec PHP 7.0 et 7.1.

Version 2.4 du plugin

  • Compatibilité avec PHP 7.2, 7.3 et 7.4.

Version 2.5 du plugin

  • Compatibilité avec SPIP 4.0

Version 2.6 du plugin

  • Compatibilité avec PHP 8.0 et 8.1
  • Compatibilité avec SPIP 4.1

Version 3.0 du plugin

  • Utilisation de la dernière version (1.6.1) de la librairie phpCAS.
  • Compatibilité avec SPIP 4.2
  • Nécessite une version 7 (ou supérieure) de PHP. En effet, la librairie phpCAS version 1.6.1 nécessite PHP version 7 ou supérieure.

Discussion

34 discussions

  • 1

    Bonjour,

    Avec SPIP 4.1.9 + Cicas 2.6.1, il m’est impossible de configurer le mode Hybride.

    • Si je mets CAS, dans spip_metas, la valeur stockée est ’oui’
    • Si je mets SPIP, dans spip_metas, la valeur stockée est ’non’
    • Mais Si je mets CAS ou SPIP, dans spip_metas, la valeur stockée est ’oui’ (au lieu de ’hybride’)

    Par ailleurs, dans ecrire/ ?exec=cicas_serveurs avec aucun serveur additionnel, il y a cette erreur :
    Warning: Invalid argument supplied for foreach() in /var/www/html/spip-svn/plugins/_cicas/exec/cicas_serveurs.php on line 44 Aucun serveur additionnel n'a été créé.

    • Bonjour,
      Je n’arrive pas à reproduire le problème (avec CICAS 2.6.1 et SPIP 4.1.9).
      Par ailleurs, je n’ai pas constaté de warning dans ecrire/ ?exec=cicas_serveurs.

    Répondre à ce message

  • 1

    Bonjour,

    Je vois que le CAS.php du plugins cicas_161005 est en version 1.3.4, hors cette version contient de multiples trous de sécurité (CVE-2012-5583, CVE-2010-2795, CVE-2010-2796,CVE-2010-3690,CVE-2010-3691,CVE-2010-3692, CVE-2012-1104, CVE-2012-1105).

    Est ce qu’une nouvelle version du plugins est prévue pour corriger cela ?

    Cordialement,

    • Il est totalement inexact d’écrire que la version 1.3.4 de phpCAS contient de multiples trous de sécurité (CVE-2012-5583, CVE-2010-2795, CVE-2010-2796,CVE-2010-3690,CVE-2010-3691,CVE-2010-3692, CVE-2012-1104, CVE-2012-1105).

      En effet, ces failles de sécurité ont été corrigées par des versions antérieures à phpCAS 1.3.4 :

      • CVE-2012-5583 corrigé par la version 1.3.2 de phpCAS
      • CVE-2012-1104 corrigé par la version 1.3.0 de phpCAS
      • CVE-2012-1105 corrigé par la version 1.3.0 de phpCAS
      • CVE-2010-3690 corrigé par la version 1.1.3 de phpCAS
      • CVE-2010-3691 corrigé par la version 1.1.3 de phpCAS
      • CVE-2010-3692 corrigé par la version 1.1.3 de phpCAS
      • CVE-2010-2795 corrigé par la version 1.1.2 de phpCAS
      • CVE-2010-2796 corrigé par la version 1.1.2 de phpCAS

    Répondre à ce message

  • 1

    Dans la version 2.0.0 de CICAS, le paramétrage par fichier de l’ordre de recherche du « host » dans les variables du serveur (cicashostordre) n’est pas pris en compte. C’est l’ordre par défaut qui s’applique (celui de phpCAS).

    Répondre à ce message

  • 3

    Bonjour,
    Merci pour ce super plugin qui devrait bien me faciliter la vie :)
    Par contre, je n’arrive pas à m’authentifier a partir de spip3 sur mon serveur CAS (version 3.3.5)
    Dans les logs de phpcas j’ai ceci :

    => CAS_Request_CurlRequest::sendRequest() [AbstractRequest.php:242]
               curl_exec() failed [CurlRequest.php:77]
        <= false
    

    Je ne comprends pas trés bien ce qui se passe...
    Le serveur CAS est derriere un firewall ou j’ai simplement ouvert le port du serveur CAS

    Merci par avance pour votre aide précieuse,

    • Bonjour,
      Ce problème concerne effectivement la librairie phpCAS.
      Il convient de consulter, sur le forum de phpCAS, les problèmes déjà signalés (par exemple celui-ci https://github.com/Jasig/phpCAS/issues/175) puis, le cas échéant, de leur signaler ce problème.

    • Merci pour cette réponse rapide.
      je me demande si je ne vais pas changer de version de serveur CAS car je pense que le problème peux venir de là...
      Est ce que vous pouvez me conseiller une version ?

    • Je ne m’occupe pas de la partie serveur CAS.

      Pour poser des questions sur le serveur CAS, des mailing-lists existent :
      https://jasig.github.io/cas/Mailing-Lists.html

      CAS Community List (cas-user)
      Focus: support, troubleshooting, general questions.
      Post to this list if you have a question about installing, configuring, or troubleshooting CAS.

    Répondre à ce message

  • 3

    Bonjour

    Je viens d’installer Cicas 1.8.0 sur notre SPIP 3.0.17 pour un site que nous sommes en train de développer. Je l’ai configuré en spécifiant notre serveur CAS avec le mode hybride pour l’authentification.
    Quand je me connecte avec le CAS, disons
    http://www.toto.fr/spip.php?page=login
    je clique ensuite sur authentification centralisé, le lien devient :
    https://cas.XXXXXXX.fr/login?service=http%3A%2F%2Fproxy-lamp-free%2Fspip.php%3Fpage%3Dlogin%26cicas%3Doui

    mon www.toto.fr a été remplacé par proxy-lamp-free

    Merci pour votre aide

    Cordialement

    Karim

    • Le
      http://www.toto.fr/ecrire/?exec=info&bonjour=oui

      me montre

      _SERVER[« HTTP_X_FORWARDED_HOST »] toto.fr
      _SERVER[« HTTP_X_FORWARDED_SERVER »] proxy-lamp-free

      il attrape le deuxieme

      Comment changer ?

    • La documentation, indique en page 7 :
      Par défaut, l’ordre de recherche du HOST dans les variables HTTP est celui de phpCAS, c’est-à-dire : ’HTTP_X_FORWARDED_SERVER’,’SERVER_NAME’,’HTTP_HOST’
      Si l’hébergeur n’est pas compatible avec l’ordre de phpCAS, on peut définir l’ordre a prendre en compte.

      Pour cela, un paramétrage par fichier est possible (le fichier doit être situé dans le dossier « /config/ » de SPIP).
      Nom du fichier : racine_du_site/config/_config_cas.php

      Exemple de contenu du fichier :

      <?php
      $GLOBALS['ciconfig']['cicashostordre'] = array('HTTP_X_FORWARDED_HOST','SERVER_NAME','HTTP_HOST');
      ?>
    • Merci pour votre retour rapide
      Cela fonctionne parfaitement.

    Répondre à ce message

  • 11

    Bonjour

    j’ai installé et configuré le plugin pour un accès mixte...
    Cela fonctionne très bien à part un problème de redirection lorsqu’on veut directement se connecter à une page de notre intranet, nécessitant au préalable une authentification.

    En effet au départ il y a bien redirection automatique vers la page d’authentification ; le lien vers l’authentification CAS fonctionne bien et renvoie bien les bonnes informations de login et d’autorisation...
    mais ensuite on se retrouve sur la page d’accueil du backend et non sur la page sur laquelle on voulait se connecter.

    je n’ai pas ce problème avec l’authentification normal... En passant par ce mode c’est ensuite bien redirigé sur la page de l’intranet sur laquelle on désire accéder

    Quelqu’un aurait-il une explication et un moyen de corriger le problème ?

    Ma version de SPIP est la 3.0.16. J’utilise en même temps le plugin acces restreint, je ne sais pas si cela peut être important.

    merci d’avance

    Séverine

    • Dans le cas où l’on veut directement se connecter à une page de l’intranet, nécessitant au préalable une authentification :
      Lorsque la page d’authentification s’affiche, quelle est la fin de son adresse dans la barre d’adresse du navigateur (par exemple : spip.php?page=login&url=spip.php%3Farticle108) ?

    • lorsque ma page d’authentification s’affiche j’ai bien l’url de la page sur laquelle je veux me connecter : monURL ?mapage.html

      et en roll over du lien [Use CAS authentification] j’ai bien monURL ?mapage.html&cicas=oui
      c’est étrange que ça ne fonctionne pas... oO’

    • En renseignant manuellement dans la barres d’adresse du navigateur, une adresse du type :
      adresse du site/spip.php?page=login&url=spip.php%3Farticle2&cicas=oui
      est-ce que le formulaire d’authentification s’affiche et est-ce que l’on est bien redirigé ensuite vers l’article 2 ?

    • ahhh oui ça marche... donc c’est là le problème... j’utilise le plugin couteau suisse pour gérer un format d’url « propres_qs » ce qui fait que mon url à la redirection sur la page de login est ?mapage.html et pas spip.php ?page=login&url=mapage...
      du coup le plugin ne reconnait pas l’url de la page.

      y a-t-il un moyen de rêgler le problème sans avoir à revenir à un format d’url de base ?

      merci d’avance

      Severine

    • Dans le squelette qui contient le lien « se connecter », il suffit de remplacer :

      [(#SESSION{id_auteur}|non) | <a href="[(#URL_PAGE{login}|parametre_url{url,#SELF})]" rel="nofollow" class='login_modal'><:lien_connecter:></a>]

      par :

      [(#SESSION{id_auteur}|non) | <a href="spip.php?page=login&url=#SELF" rel="nofollow" class='login_modal'><:lien_connecter:></a>]

    • Bonjour,

      nous avons le même problème que vous, nous ne trouvons pas comment rediriger les personnes vers la page intranet par exemple lorsqu’elles s’authentifie par le CAS.
      Actuellement, les personnes sont redirigées vers /ecrire et ce n’est pas ce que nous voulons.

      Si une âme charitable passe par là...merci

    • En renseignant manuellement dans la barre d’adresse du navigateur, une adresse du type :
      adresse du site/spip.php?page=login&url=spip.php%3Farticle2&cicas=oui
      est-ce que le formulaire d’authentification s’affiche et est-ce que l’on est bien redirigé ensuite vers l’article 2 ?

    • Oui manuellement tout fonctionne bien, l’URL de retour fonctionne bien.

      Ceci :

      https://lmb.univ-fcomte.fr/spip.php?page=login&url=spip.php%3Frubrique96&cicas=oui

      nous renvoie vers :

      https://lmb.univ-fcomte.fr/spip.php?rubrique96

      Nous avons essayé de modifier inc/footer.html avec la solution au dessus mais cela n’a aucun effet sur l’URL produit (rubrique96).

      Merci

    • Merci d’avoir indiqué l’adresse de la page. En effet, j’ai pu deviner que le squelette de rubrique contient le formulaire #LOGIN_PUBLIC (et que le site utilise un certain plugin d’accès restreint).

      L’adresse de cette page, qui affiche le formulaire d’authentification, ne comprend pas le paramètre « &url=... » comme c’est le cas pour la page « login ». Aussi, la redirection après authentification, vers une page particulière, ne pouvait pas s’effectuer.

      La version 1.8 de CICAS (jointe au présent article) prend en compte désormais ce cas particulier.

    • C’est impeccable, merci beaucoup pour votre boulot et votre réactivité !

    • Merci pour ce retour.

    Répondre à ce message

  • 14

    J’ai créé un fichier footer.html dans /squelettes/inclure en modifiant le lien.

    [(#SESSION{id_auteur}|non) | <a href="[(#URL_PAGE{login}|parametre_url{url,#SELF})]" rel="nofollow" class='login_modal'><:lien_connecter:></a>]

    J’ai vidé le cache également.

    Je n’ai pas constaté d’évolution :

    310D .|    |    |    |    |    |    Final URI: http://monsite.domaine/spip.php?page=login&url=.%2F&cicas=oui [Client.php:3071]
    310D .|    |    |    |    |    <= 'http://monsite.domain/spip.php?page=login&url=.%2F&cicas=oui'
    310D .|    |    |    |    <= 'https://cas.domaine/cas/serviceValidate?service=http%3A%2F%2Fmonsite.domain%2Fspip.php%3Fpage%3Dlogin%26url%3D.%252F%26cicas%3Doui'
    310D .|    |    |    |    => CAS_Client::_readURL('https://cas.domaine/cas/serviceValidate?service=http%3A%2F%2Fmonsite.domain%2Fspip.php%3Fpage%3Dlogin%26url%3D.%252F%26
    cicas%3Doui&ticket=ST-1387979-ElgRKuNGbiDlB29lVyi0-domu-cas1', NULL, NULL, NULL) [Client.php:2762]

    Je vois qu’il me manque la partie TARGET :

    TARGET=http%3A%2F2Fmonsite.domaine
    %2Fspip.php%3Fpage%3Dlogin%26url%3Dspip.php%253Farticle10
    %26cicas%3Doui

    Merci de votre patience !

    Stéphane

    • En renseignant manuellement dans la barre d’adresse du navigateur, une adresse du type :
      adresse du site/spip.php?page=login&url=spip.php%3Farticle10&cicas=oui
      est-ce que le formulaire d’authentification s’affiche et est-ce que l’on est bien redirigé ensuite vers l’article 10 ?

    • Lorsque je saisis directement l’adresse d’un article (adresse du site/spip.php ?page=login&url=spip.php%3Farticle2&cicas=oui), le formulaire d’authentification Spip ne s’affiche pas.
      On tombe directement sur le serveur CAS.
      Après authentification CAS, on arrive à cette page « Mon Site Spip », comme si le formulaire d’authentification Spip était tronqué (adresse = adresse du site/spip.php ?page=login&url=spip.php%3Farticle2&cicas=oui&ticket=ST-1389298-MgjlfaLmISDR91CoS5Z7-domu-cas1) .

      DFCD .|    |    |    |    |    |    Final URI: http://site.domaine/spip.php?page=login&url=spip.php%3Farticle2&cicas=oui [Client.php:3071]
      DFCD .|    |    |    |    |    <= 'http://site.domaine/spip.php?page=login&url=spip.php%3Farticle2&cicas=oui'
      DFCD .|    |    |    |    <= 'https://cas.domaine/cas/serviceValidate?service=http%3A%2F%2Fsite.domaine%2Fspip.php%3Fpage%3Dlogin%26url%3Dspip.php%253Farticle2%26cicas%
      3Doui'
      DFCD .|    |    |    |    => CAS_Client::_readURL('https://cas.domaine/cas/serviceValidate?service=http%3A%2F%2Fsite.domaine%2Fspip.php%3Fpage%3Dlogin%26url%3Dspip.php%
      253Farticle2%26cicas%3Doui&ticket=ST-1389298-MgjlfaLmISDR91CoS5Z7-domu-cas1', NULL, NULL, NULL) [Client.php:2762]
      DFCD .|    |    |    |    |    => CAS_Request_CurlRequest::sendRequest() [AbstractRequest.php:220]

      Merci +++

      Stéphane

    • Pour le test précité, il faut utiliser le mode d’authentification « CAS ou SPIP » dans la configuration du plugin.

    • je confirme bien utiliser ce mode

      Stéphane

    • Equipement

      En renseignant manuellement dans la barre d’adresse du navigateur, une adresse du type :
      adresse du site/spip.php?page=login
      est-ce que le formulaire d’authentification s’affiche ?

    • Bonjour,

      Le formulaire d’authentification Spip apparaît bien en lançant adresse du site/spip.php?page=login

      Merci !

      Stéphane

      • Avec le mode d’authentification « CAS ou SPIP »
      • Supprimer tous les cookies du navigateur
      • Renseigner manuellement dans la barre d’adresse du navigateur, une adresse du type :
        adresse du site/spip.php ?page=login&url=spip.php%3Farticle10&cicas=oui
      • Lorsque le formulaire d’authentification de CAS s’affiche, quelle est l’adresse qui figure dans la barre d’adresse du navigateur ?
    • -  Avec le mode d’authentification « CAS ou SPIP » : OK
      - Supprimer tous les cookies du navigateur : OK
      - Renseigner manuellement dans la barre d’adresse du navigateur, une adresse du type : adresse du site/spip.php?page=login&url=spip.php%3Farticle2&cicas=oui
      -  Lorsque le formulaire d’authentification de CAS s’affiche, quelle est l’adresse qui figure dans la barre d’adresse du navigateur ?
      https://cas.domaine/cas/login?service=http%3A%2F%2Fmonsite.domaine%2Fspip.php%3Fpage%3Dlogin%26url%3Dspip.php%253Farticle2%26cicas%3Doui

      Merci !

    • Dans l’espace privé, renseigner manuellement dans la barre d’adresse du navigateur :
      adresse du site/ecrire/?exec=info

      Dans la page qui s’affiche, quelles sont les valeurs de :

      • HTTP_X_FORWARDED_SERVER
      • SERVER_NAME
      • HTTP_HOST
      • REQUEST_URI
    • -  HTTP_X_FORWARDED_SERVER : je ne trouve pas cette variable
      -  SERVER_NAME : monsite.domaine
      -  HTTP_HOST : monsite.domaine
      -  REQUEST_URI : /ecrire/ ?exec=info

      Merci !

      • Avec le mode d’authentification « CAS ou SPIP »
      • Supprimer tous les cookies du navigateur
      • Supprimer tmp/phpCAS.log
      • Afficher un article sur le site public
      • S’authentifier avec CAS
      • Me communiquer le contenu du phpCAS.log (et pas seulement un extrait)
    • Comme l’indique la présente page, le client phpCAS nécessite certains prérequis qu’il convient de vérifier : https://wiki.jasig.org/display/CASC/phpCAS+requirements.

    • Dans le cas où le formulaire #LOGIN_PUBLIC était utilisé dans un squelette autre que celui de la page « login » (par exemple dans le squelette rubrique ou article si on utilise un certain plugin d’accès restreint), l’adresse de la page ne comprenait pas le paramètre « &url=... » comme c’est le cas pour la page « login ».

      Aussi, la redirection après authentification, vers une page particulière, ne pouvait pas s’effectuer.

      La version 1.8 de CICAS prend en compte désormais ce cas particulier.

    • PHP/Curl n’était pas installé, prérequis nécessaire pour phpCAS.
      La redirection fonctionne bien désormais.
      Merci de votre patience et bravo pour ce plugin !

    Répondre à ce message

  • 3

    Bonjour,
    j’utilise SPIP 2.1.26 et j’ai le même type d’erreur que déjà mentionné mais je n’arrive pas à solutionner mon problème.
    Le message cicas_erreur3 (« Erreur de connexion : Problème d’accès à l’espace privé ») indique qu’un visiteur tente d’entrer dans l’espace privé de SPIP.
    Comme SPIP n’autorise pas les visiteurs à rentrer dans l’espace privé, le lien d’authentification ne doit pas renvoyer sur l’espace privé de SPIP mais doit renvoyer sur la page du site public.
    SImplement je n’arrive pas à savoir comment lui expliciter cette adresse public.
    Peut etre important j’ai le plugin "Acces restreint"
    Merci pour votre aide.

    • Comme SPIP n’autorise pas les visiteurs à rentrer dans l’espace privé, le lien d’authentification ne doit pas renvoyer sur l’espace privé de SPIP mais doit renvoyer sur la page du site public.

      Un exemple se trouve dans le squelette de SPIP 3.0 : squelettes-dist/inclure/footer.html :

      a) Pour se connecter, les auteurs non authentifiés cliquent sur un lien vers la page de login de SPIP avec la page actuelle comme adresse de retour :
      [(#SESSION{id_auteur}|non) | <a href="[(#URL_PAGE{login}|parametre_url{url,#SELF})]" rel="nofollow" class='login_modal'><:lien_connecter:></a>]

      b) Les auteurs non authentifiés cliquent sur un lien vers l’espace privé de SPIP :
      [(#AUTORISER{ecrire})| <a href="#EVAL{_DIR_RESTREINT_ABS}"><:espace_prive:></a>]

    • Merci beaucoup pour votre réponse mais cela ne m’avance guère.
      En fait, avec le plugin "Acces restreint’ j’ai bloqué l’acces à une page « intranet ».
      Sans votre plugin, quand on se connecte sur cette page « intranet » on demande automatiqument les login et pwd simplement je veux utiliser un serveur CAS pour le faire.
      J’ai donc ajouter votre plugin CICAS.
      Maintenant, quand les gens veulent se connecter a l’intranet ils tombent sur la page ou l’on peut se connecter via le compte spip ou vias le CAS. Si les gens se connecte via le serveur CAS et que j’ai préalablement enregistré le compte de la personne en « redacteur » ils tombe directement sur l’espace prive du site ce qui n’est pas mon objectif. Si j’enregistre l’auteur en « visiteur » alors je tombe sur cette cicar_erreur3. J’ai essayé d’interprété votre solution mais j’ai l’impression que cela rentre en conflit avec la page en acces restreint du plugin « Acess Restreint » ??? ou laors j’ai mal fait la modif ce qui est plus vraissemblable. J’ai bien essayé de retiré le plugin « Acess Restreint » mais alors le souci est que je ne sais pas comment activer cicas quand le visiteur clique sur mon lien « intranet ».
      J’espère avoir été assez clair et merci encore pour votre patience.

    • Dans le cas où le formulaire #LOGIN_PUBLIC est utilisé dans un squelette autre que celui de la page « login » (par exemple dans le squelette rubrique ou article si on utilise un certain plugin d’accès restreint), l’adresse de la page ne comprend pas le paramètre « &url=... » comme c’est le cas pour la page « login ».

      Aussi, la redirection après authentification, vers une page particulière, ne peut pas s’effectuer.

      La version 1.8 de CICAS prend en compte désormais ce cas particulier.

    Répondre à ce message

  • 4
    laurent

    Bonjour,

    l’authentification se fait bien. (SPIP 3.0.17) mais un rédacteur dont on a préalablement attribué un article ne peut modifier l’article. Quand il se connecte, il lui est bien listé ses différents articles mais il ne peut voir le bouton « modifier » quand il sélectionne l’article. Quand on force avec l’url de type http://sit.com/ecrire/?exec=article_edit&id_article=100 : « Vous n’avez pas le droit d’accéder à la page article_edit. » s’affiche.

    Cordialement.

    • Est-ce que, dans listes des auteurs dans SPIP, deux auteurs ont le même email ?

    • laurent

      Oui, c’était le cas pour un utilisateur (moi) qui avait un login spip et un cas mais pas les autres utilisateurs.
      Merci de toute indication.

      Cordialement.

    • CICAS recherche quel auteur (au sens SPIP) s’est authentifié (en se basant sur l’identifiant CAS, par exemple l’email). S’il n’y a pas de doublon d’email dans les auteurs de SPIP (ou de doublon de login si l’identifiant CAS est stocké dans le champ login de SPIP), alors il n’y a pas de confusion possible sur l’auteur qui vient de s’authentifier.
      Est-ce qu’en passant par l’authentification SPIP (au lieu de CAS), le rédacteur en question arrive à modifier l’article ?

    • laurent

      C’est mon SPIP qui ne prends plus en charge les droits car effectivement, avec un utilisateur SPIP, j’ai le même problème. Cicas n’est pas en cause. Désolé.

      Cordialement.

    Répondre à ce message

  • 6

    Merci pour ce plugin,
    il fonctionne très bien si c’est un auteur, en revanche si dans spip 3 je le passe en visiteur (authentifié par cicas) je tombe sur la page cicas_erreur3 (« Erreur de connexion :Problème d’accès à l’espace privé »).
    Si ce visiteur (même login) s’authentifie par le menu spip, il a accès a mon intranet.
    Avez vous une idée ?
    Merci d’avance
    MG

    • Le message cicas_erreur3 (« Erreur de connexion : Problème d’accès à l’espace privé ») indique qu’un visiteur tente d’entrer dans l’espace privé de SPIP.

      Comme SPIP n’autorise pas les visiteurs à rentrer dans l’espace privé, le lien d’authentification ne doit pas renvoyer sur l’espace privé de SPIP mais doit renvoyer sur la page du site public.
      Un exemple se trouve dans le squelette de SPIP 3.0 : squelettes-dist/inclure/footer.html

    • Tompte

      Bonjour ,
      Tout comme Michael j’ai le problème du cicas_erreur3 pour mes comptes visiteurs.
      J’avoue ne pas bien connaitre Spip mais je dois m’occuper de la CASsification.
      Nous avons un serveur CAS LemonLDAP avec un portail.
      Le mode de fonctionnement est le suivant :
      - les personnes s’identifie sur le portail CAS
      - Ils cliquent sur les icônes des sites auquels ils peuvent avoir accès
      - ils sont envoyé vers le site avec leur id, cookies, etc ...
      L’adresse utilisé pour notre site Spip est http://xxxyyy.xxx/spip/?cicas=oui
      Pour les comptes Rédacteurs et Admin cela fonctionne très bien.
      Merci d’avance pour votre aide
      P

    • Comme SPIP n’autorise pas les visiteurs à rentrer dans l’espace privé, le lien d’authentification ne doit pas renvoyer sur l’espace privé de SPIP mais doit renvoyer sur la page du site public.

      Un exemple se trouve dans le squelette de SPIP 3.0 : squelettes-dist/inclure/footer.html :

      a) Pour se connecter, les auteurs non authentifiés cliquent sur un lien vers la page de login de SPIP avec la page actuelle comme adresse de retour :
      [(#SESSION{id_auteur}|non) | <a href="[(#URL_PAGE{login}|parametre_url{url,#SELF})]" rel="nofollow" class='login_modal'><:lien_connecter:></a>]

      b) Les auteurs non authentifiés cliquent sur un lien vers l’espace privé de SPIP :
      [(#AUTORISER{ecrire})| <a href="#EVAL{_DIR_RESTREINT_ABS}"><:espace_prive:></a>]

    • Tompte

      Merci beaucoup pour la réponse.
      Malheureusement elle ne résous pas mon problème ou alors il y a quelque chose qui m’échappe !
      Je comprends bien comment faire un lien sur le site SPIP redirigeant vers la page écrire ou non suivant le profile.
      Dans mon cas cependant, le lien n’est pas sur le site SPIP mais sur un Portail extérieur.
      Actuellement notre Portail pointe vers http://xxxyyy.xxx/spip/?cicas=oui ce qui fonctionne très bien avec les Auteurs mais pas avec les visiteurs.
      Comment faire pointer le lien du Portail sur une page non Privé de Spip ?
      D’avance merci pour ton aise
      P

    • Il suffit d’utiliser la syntaxe d’URL du a) et, en mode d’authentification hybride, d’ajouter cicas=oui.

      Par exemple :
      http://monsite/spip.php ?page=login&url=spip.php?page=sommaire&cicas=oui

    • Tompte

      Merci beaucoup
      Je n’avais pas saisi la subtilité ;c)
      Maintenant cela fonctionne parfaitement
      P

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom