Sei sulla pagina 1di 2

Installare e configurare phpCAS

Dettagli tecnici per una corretta installazione di phpCAS, in modalit� Diretta e


Proxy.

Requisiti

Per installare phpCAS serve avere installati :

CURL 7.5+
PHP 4.3.1+
Apache 2.0.44+,ma in realta' noi lo abbiamo installato anche con Apache 1.3.x o
altri web server

Procedura

scaricare tgz da
http://esup-phpcas.sourceforge.net/download.html
ad esempio http://prdownloads.sourceforge.net/esup-phpcas/esup-phpcas-0.4.9-
1.zip?download
e scompattare.
nella directory esup-phpcas/source/ si trova la directory CAS/ ;
copiarla nel percorso che utilizza php per includere le librerie (nella
suse9 lo ho copiata in /usr/share/php ) ; vedi php.ini se differente.
opzionale: se necessario personalizzare nella cartella languages/ la
traduzione e modificare file CAS.php alla linea 150 e precedenti

define("CAS_LANG_DEFAULT", CAS_LANG_ENGLISH)
opzionale: nel file CAS.php modificare se necessario:
(riga 58): define("CAS_PGT_STORAGE_FILE_DEFAULT_PATH",'/tmp');
aggiungere alla riga 1427 di client.php:

curl_setopt($ch, CURLOPT_CAINFO, '/etc/httpd/SSL/ca.crt');

ca.crt � il certificato della Certification Auth del CCE,

copiatelo appunto in /etc/httpd/SSL/ o dove pi� opportuno e rendetelo leggibile


da Apache o anche tutti
sconsigliato: per verificare che non ci siano altri problemi si puo
temporaneamente aggirare il controllo dei certificati, ma creiamo un buco nella
sicurezza del sistema:
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

Testiamo la configurazione

Per vedere se funziona usare gli esempi contenuti in


esup-phpcas/source/examples

copiare la directory examples dove possa possibile accedervi


attraverso il server web.
modalit� diretta: iniziando da example_simple.php, modificare:

riga20: phpCAS::client(CAS_VERSION_2_0,'cas.unipr.it',443,'');

Controlliamo col browser se riuscimo ad autenticarci con successo.


esempio in modalit� proxy: example_proxy
riga 21: phpCAS::proxy(CAS_VERSION_2_0,'cas.unipr.it',443,'');
riga 41: $services = array('https://upservizi.unipr.it/cas/cad2.php');

NB: � necessario far eseguire da marco.panella@unipr.it la procedura


importazione certificato generato dalla CA del CCE del vostro server (su cui state
installando phpCAS) sul server CAS con javatool; altrimenti il server CAS non pu�
controverificare la vostra identit�.

Controlliamo col browser se riuscimo ad autenticarci con successo.


in breve, in modalit� diretta (test al punto 2) si ottiene autenticazione, in
modalit� proxy (test al punto 3) si ottiene
autenticazione E autorizzazione, cio� si possono conoscere anche gran
parte degli attributi dell'utente che si � appena autenticato.

quindi utilizzando la modalit� proxy e volendo per i nostri scopi avere disponibili
nel nostro script in php le variabili con gli attributi dell'utente usiamo uno
script tipo questo:

es:

include_once('CAS/CAS.php');
phpCAS::setDebug();

// initialize phpCAS
phpCAS::proxy(CAS_VERSION_2_0,'cas.unipr.it',443,'');

// check CAS authentication


phpCAS::authenticateIfNeeded();

//cas
$login = phpCAS::getUser();

$lmai = $login;

phpCAS::serviceWeb("https://upservizi.cce.unipr.it/cas/cad2.php?out=txt",$err_code,
$output);

$arrai = split(';',$output);
for($i=0;$i<count($arrai);$i++){
list ($nn, $vv) = split ('=', $arrai[$i]);
$valori[$nn]=$vv;
}
$lsn = $valori["lnome"];
$lcn = $valori["lcognome"];
$cat2 = $valori["categoria2"];

$lco = $valori["lcorsolaurea"];
$lfa = $valori["lfacolta_num"];
$lmat = $valori["lmatr"];

$lstrutt = $valori["lstruttura"];
$lcodsisa = $valori["codsisa"];

etc etc usando gli attributi che servono e il gioco � fatto!