Outils pour utilisateurs

Outils du site


braveo:docinstall:cas:serviceweb

CASsification d'un site web avec phpCas

Principe

Le principe est relativement simple, par exemple lorsque l'utilisateur cliques sur le lien de l'espace membre, au lieu de lui demander ces identifiants, à l'aide de phpCas on le redirige vers le CAS. L'utilisateur s'identifie sur le CAS, le CAS le ramène sur le service (espace membre par exemple) avec un Service Ticket (ST). Puis le service valide se ST auprès du CAS qui va alors retourner l'identifiant de l'utilisateur. Rassurez-vous tout ce fait en quelques lignes de code grâce a phpCas, mais il est important de connaitre le processus, c'est pourquoi nous allons détailler ce processus.

Toutes les parties (CAS et espace membre par exemple) doivent être sécurisés en https

étape 1 : obtention du Service Ticket (ST)

Le service redirige l'utilisateur vers le CAS :

Location: https://cas.mdl29.net/login?service=https://inscriptions.mdl29.net/membres

L'utilisateur est déjà connecté au CAS ou se connecte, il est alors redirigé vers le service ici la webmail avec un Service-Ticket (ST) :

Location: https://mail.mdl29.net/?ticket=ST-956-Lyg0BdLkgdrBO9W17bXS


étape 2 : Vérification du Service Ticket

Le service vérifie la validité du ST :

https://cas.mdl29.net/serviceValidate?ticket=ST-956-Lyg0BdLkgdrBO9W17bXS&service=http://inscriptions.mdl29.net/membres

Réponse

  <cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
      <cas:authenticationSuccess>
          <cas:user>benvii</cas:user>
      </cas:authenticationSuccess>
  </cas:serviceResponse>

Nous avons du bien vérifié au près du CAS que l'utilisateur Benvii est bien identifié.

En php ça donne quoi ?

Ce tutoriel ne vise pas à montrer en détaille toutes les fonctionnalités de la librairie phpCas pour plus d'exemple rendez-vous ici.

Je vous invite à télécharger la librairies phpCas : http://downloads.jasig.org/cas-clients/php/current/

Vous allez voir c'est relativement simple, quelques lignes de code suffisent. Prenons par exemple la page de connexion de l'espace membre de libr@net (modifié pour les besoins de cette doc) :

<?php
include_once('../inc/CAS.php'); //Fichier CAS.php de la librairie
 
//###################### Connexion via le CAS #############################
phpCAS::client(CAS_VERSION_2_0,'cas.mdl29.net',443,'');
phpCAS::setServerServiceValidateURL('https://cas.mdl29.net/serviceValidate');
//phpCAS::setNoCasServerValidation(); //A utiliser si vous avez un certificat auto-signé par exemple
phpCAS::forceAuthentication(); // On veux que l'utilisateur soit connecté
 
 
//#################### Utilisateur est redirigé est forcément connecté ici #
if(phpCAS::getUser()){ //Si réelement connecté
       echo "L'utilisateur : ".phpCAS::getUser()." est connecté";
       // Utilisateur connecté on peut faire ce que l'on veux
}
 
?>

Le code en détail

phpCAS::client

Le serveur CAS lorsqu'il est installé est généralement disponible à une adresse du genre : https://cas.mdl29.net/cas/ Dans ce cas il faudra préciser ceci :

phpCAS::client(CAS_VERSION_2_0,'cas.mdl29.net',443,'/cas/');

Veillez aussi à adapter le port, peut-être que votre CAS est sur le port 8443 en non le 443 ?

Pour plus d'informations, ce reporter à la documentation fournie par phpCas, merci de compléter cette page si vous souhaitez détailler plus cette partie








Rédigé par Benjamin Bernard
Sources : Proxy CAS Walkthrough - Central Authentication Service - Jasig Wiki - phpCAS - CAS Clients - Jasig Wiki

braveo/docinstall/cas/serviceweb.txt · Dernière modification : 2024/04/16 22:28 de 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki