IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[eZ Publish 4.3] Central Authentication Service (CAS)


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 25
    Par défaut [eZ Publish 4.3] Central Authentication Service (CAS)
    Bonjour,

    Alors voilà, je suis en train de tester le CMS eZPublish et je souhaite mettre en place une authentification CAS. Malheureusement il n'y a que très peu de doc sur ce type d'authentification, et encore moins sur ce type d'authentification avec eZPublish... Pour le moment j'ai testé deux choses (pas très concluantes ^^) :

    1) D'après ce que j'ai compris, lorsque l'on se logue à eZPublish via la page login, il appelle une première fois "login.php", puis une deuxième fois lorsque l'on clique sur "valider". A chaque appel, eZ regarde dans des variables s'il n'y a pas les paramètres de connexion. J'ai donc modifié les templates de manière a ce que lorsque l'on clique sur "login" l'on soit redirigé vers la d'authentification CAS, et je passe en paramètre la page de login (http://...service=http://siteez/inde...fre/user/login). Puis j'ai modifié "login.php" afin de récupérer et de traiter le ticket. A ce niveau CAS renvoi un ticket invalide... En revanche, si je passe à CAS en paramètre la page d'accueil (http://...service=http://siteez/index.php), le ticket renvoyé est valide...
    Voilà ou j'en suis de cette solution.

    Deuxième essais :

    2) J'ai testé le patch suivant : http://projects.ez.no/cas_with_ezpublish_4_0_1. L'un des problèmes ici est que l'on est redirigé sur le serveur CAS dès la connexion au site, mais ca ne devrais pas être trop dur à changer. Le problème un peu plus grave c'est qu'une fois authentifié, le site renvoi une erreur "Fatal error: eZ Publish did not finish its request"...


    Donc mes questions sont : avez-vous déjà utilisé ce type d'authentification pour eZPublish, si oui comment avez-vous fait ?
    Avez-vous des avis sur les deux solutions ?
    Et pouvez-vous m'éclairer un peu plus sur le parcours effectué lorsque l'on se connecte ?

    Merci beaucoup de votre aide.

    PS : pour ceux que ca intéresse j'ai joins une doc expliquant le CAS.

  2. #2
    Membre émérite Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Par défaut
    Bonjour,

    As-tu regardé ces documentations sur la création d'un gestionnaire sso dans eZ :

    http://www.lolart.net/blog/ez-publish/utilisation-d-un-sso-dans-ez-publish

    http://osmojo.fr/Blog/Creer-un-gesti...-sur-eZpublish

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 25
    Par défaut
    oui j'ai regardé les sites indiqués, j'ai fait le tour de la toile ^^ Enfin je crois.
    En fait je crois qu'un éclairage sur le fonctionnement même d'eZpublish lorsque l'on se connecte au site serait déjà bien utile.
    Je suis en train de passer au peigne fin le fichier ezuser.php pour essayer de mieux comprendre, mais si quelqu'un à des réponses cela me ferait gagner pas mal de temps je pense.

    Merci.

    [edit]
    En fait, je crois que j'ai pas bien compris cette histoire de SSO. Déjà je ne vois pas quoi mettre dans le constructeur...
    Ensuite dans le corps de la fonction, est-ce que je peux faire un algo du style :

    SI l'utilisateur dispose d'un ticket CAS
    on vérifie l'utilisateur
    return de l'utilisateur
    SINON
    renvoi sur la page CAS

    Et dernière petite question, à quelle moment cette extension est-elle appelée ?

  4. #4
    Membre émérite Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Par défaut
    Théoriquement en créant un gestionnaire SSO en suivant la procédure décrite dans ce tuto, tu n'as pas besoin de gratouiller dans le kernel... Non ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 25
    Par défaut
    voir [edit]

  6. #6
    Membre émérite Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Par défaut
    Je pense que cette méthode est appelée à la place du script de login original.
    Elle sert à avertir eZ que l'utilisateur a été authentifié par un autre système, et retourne l'utilisateur eZ correspondant.

    Il faudrait faire des tests pour plus de précision, avec par exemple une méthode simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php
    /* Sur eZpublish 4 plus besoin d'inclure ces fichiers ils sont automatiquement inclus à la demande par le mécanisme standard de php5
        include_once( 'kernel/classes/ezpersistentobject.php' );
        include_once( 'kernel/classes/datatypes/ezuser/ezuser.php' );
        include_once( 'lib/ezutils/classes/ezini.php' );
    */
        class eZMysqlssohandler
        {
            function eZMysqlssohandler()
            {
    //constructeur
            }
     
            /*!
    Cette méthode doit retourner l'objet ezuser à connecter, false sinon
             
            */
            function handleSSOLogin()
            {
     
              $currentUser =eZUser::fetchByName('admin');
     
                return $currentUser;
            }
        }
    ?>
    En créant cette méthode, tu pourras voir à quel moment l'authentification se fait.
    A mon avis le test est effectué lorsque l'utilisateur veut accéder au site.

Discussions similaires

  1. [Python 3.X] Connexion Site web Python3 / CAS (Central Authentication Service)
    Par Yves94 dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 15/06/2018, 12h21
  2. Intégrer Central Authentication Service avec Spring
    Par franco9 dans le forum Spring
    Réponses: 0
    Dernier message: 03/01/2014, 16h53
  3. GWT et Central Authentication Service
    Par Lorenzaccio dans le forum GWT et Vaadin
    Réponses: 2
    Dernier message: 06/04/2009, 11h44
  4. Central Authentication Service
    Par linniesurf dans le forum Sécurité
    Réponses: 4
    Dernier message: 31/05/2007, 13h28
  5. API CAS (Central Authentication Service)
    Par linniesurf dans le forum Sécurité
    Réponses: 1
    Dernier message: 20/06/2006, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo