Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Authentification CAS

Posted by YvesTan on 10/22/2008 10:52

Salut à tous,

Je souhaiterais passer par un serveur CAS (un serveur d'authentification centralisé), pour l'accès à un backoffice codé avec jelix.

Concrètement, le CAS me crée une session avec le login de l'utilisateur quand l'authentification a fonctionnée.

Dans une table de mon projet, j'ai les infos "de base" sur l'utilisateur (login et droits) mais pas le mot de passe puisque c'est le CAS qui doit faire le boulot.

Je ne vois pas trop à quel niveau de Jelix je dois ensuite l'intégrer.

Quand je regarde l'interface jIAuthDriver, je vois des méthodes liées aux changements des paramètres de l'utilisateur. Hors les utilisateurs peuvent changer leurs paramètres uniquement sur le serveur CAS. Pas sur le backoffice que je développe. Donc je ne pense pas que j'ai à toucher à ça.

Est-ce qu'il faut simplement que je fasse une classe qui hérite de jAuth et changer la méthode "login" pour quelle vérifie :

  • si la session CAS est activé
  • si le user enregistré dans la session CAS est aussi dans la table de mon projet

J'ai collé la classe phpCas (http://www.ja-sig.org/wiki/display/CASC/phpCAS+examples) dans lib/.

je ne sais pas si je suis très clair ;) mais si vous avez des pistes... Merci d'avance !

  [Opened] Re: Authentification CAS

Reply #1 Posted by laurentj on 10/22/2008 11:18

Salut,

je ne pense pas que ce soit une bonne solution que de surcharger la classe jAuth. Il est préférable que tu te fasse un driver spécifique pour jAuth. Ça sera beaucoup plus propre.

  [Opened] Re: Authentification CAS

Reply #2 Posted by YvesTan on 10/22/2008 21:38

OK. Merci. je vais donc essayer de faire un joli driver !

  [Opened] Re: Authentification CAS

Reply #3 Posted by YvesTan on 10/29/2008 17:38

Salut,

Je reviens avec mon pb d'authentification CAS car je ne vois vraiment pas à quoi me servira le driver jAuth ?!

Voici un exemple hyper basique d'authentification CAS. Quand on est pas connecté au serveur CAS, on est renvoyé sur la page de login de celui çi.

Quand on est connecté, il y a une session de crée

 <?php
 // phpCAS lib
 include_once('../lib/CAS/CAS.php');
 
 // initialize phpCAS
 phpCAS::client(CAS_VERSION_2_0,'entcas.univ.fr',443,'/cas');
 
 // force CAS authentication
 phpCAS::forceAuthentication();
 
 // ici on est logué par le serveur CAS et le login peux-être lu avec
 // phpCAS::getUser().
 
 // for this test, simply print that the authentication was successfull
 print_r($_SESSION);
 echo phpCAS::getUser();
 ?>

Le driver Db me va très bien puisque les infos du user sont dans ma base. Ce qui me manque, c'est juste faire "si pas connecté au serveur CAS (vérifié avec la méthode phpCas::forceAuthentification) alors renvoi moi sur le serveur CAS"

Merci d'avance pour vos idées !

  [Opened] Re: Authentification CAS

Reply #4 Posted by laurentj on 10/29/2008 22:14

Désolé, je ne connais pas CAS, donc je ne peux pas plus t'aider que ça.

faire un driver pour jAuth permet aux modules de ne pas savoir comment fonctionne CAS, et d'unifier donc le fonctionnement d'une authentification. Si tu reprend par exemple un module fait par quelqu'un d'autre et qui utilise jAuth, il fonctionnera correctement. Idem pour toutes les classes metiers, plugins etc qui font appel à jAuth. Ce ne sera par contre pas le cas si tu fais ton propre système d'authentification en passant directement par CAS.

Libre à toi de faire comme tu le sens.

  [Opened] Re: Authentification CAS

Reply #5 Posted by YvesTan on 11/16/2008 21:44

J'ai réussi à faire un driver qui utilise la librairie PHPCas. Est-ce que je le propose quelque part ?

Par contre, la librairie PHPCas ne passe pas le E_Strict (ni même ke E_Notice je crois).

++

  [Opened] Re: Authentification CAS

Reply #6 Posted by laurentj on 11/17/2008 11:33

Oui, pourquoi pas :-)

  [Opened] Re: Authentification CAS

Reply #7 Posted by YvesTan on 11/17/2008 12:41

Il y a un endroit sur le site jelix où on mets ça ?

 
Page
  1. Authentification CAS