- 1
[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
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
Posted by YvesTan on 10/22/2008 21:38
OK. Merci. je vais donc essayer de faire un joli driver !
[Opened] Re: Authentification CAS
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
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
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
Posted by laurentj on 11/17/2008 11:33
Oui, pourquoi pas :-)
[Opened] Re: Authentification CAS
Posted by YvesTan on 11/17/2008 12:41
Il y a un endroit sur le site jelix où on mets ça ?
- 1