Salut à tous,
dans le cadre de mon stage j'ai été ammené à travailler avec la plateforme Claroline et l'authentification Radius.
Il se trouve qu'il existe pas mal de drivers pour authentifier Claroline mais aucun ne parle du radius...
Ces drivers étants basés sur l'extension pear pour php, j'ai décidé de m'y mettre et de coder mon propre driver.
Voici donc la marche à suivre et le code du driver commenté.
J'èspère que cela vous aidera.
Installer pear ci ce n'est déja fait et l'authentification radius pour php
aptitude install php5-dev php5-auth-pam php5-radius php-pear
pear install radius Auth_RADIUS
Redémarrer apache2
/etc/init.d/apache2 restart
Créer le fichier $CLAROLINE_PATH/platform/conf/extauth/radius.conf.php et y coller le code suivant :
<?php
/**
* RADIUS authentication driver
*
* @version 1.0
* @copyright 2009-2010 DJ ZiO
* @author Lorenzo Bernardi <zio@djzio.be>
* @license http://www.gnu.org/copyleft/gpl.html
* GNU GENERAL PUBLIC LICENSE version 2 or later
* @package CLAUTH
*
*/
if(count(get_included_files())==1)
{
die('The file '.basename(__FILE__).' cannot be accessed directly, use include instead');
}
$driverConfig['driver'] = array(
'enabled' => true, // set to false to disable the driver
// Ne pas modifier ce qui suit
'class' => 'PearAuthDriver',
'authSourceType' => 'RADIUS',
'authSourceName' => 'radius',
// Fin de l'interdiction
// Autorise le driver à créer l'utilisateur dans claroline si il n'existe pas encore
'userRegistrationAllowed' => true,
// Autorise le driver à mettre à jour l'utilisateur dans claroline
'userUpdateAllowed' => false
);
/**
* Configuration du driver
* -----------------------
* Il faut ajouter les serveurs dans un array.
*
* Exemple:
* 'servers' => array(
* array($hostname_srv1,$port_srv1,$secret_srv1,$timeout_srv1,$maxretries_srv1),
* array($hostname_srv2,$port_srv2,$secret_srv2,$timeout_srv2,$maxretries_srv2)
* ),
* 'authtype' => 'PAP'
*
* /!\\ Remarque /!\\
* ----------------
* Si on ne met qu'un serveur , il est quand même nécessaire de le mettre dans un array.
*
* Exemple:
* 'servers' => array(
* array($hostname_srv1,$port_srv1,$secret_srv1,$timeout_srv1,$maxretries_srv1)
* ),
* 'authtype' => 'PAP'
*
* Pour plus d'infos sur la configuration du driver :
* http://pear.php.net/manual/en/package.authentication.auth.storage.radius.php
*
*/
$driverConfig['extAuthOptionList'] = array(
'servers' => array(array('192.168.80.58',1812,'testing123',3,3)),
'authtype' => 'PAP'
);
$driverConfig['extAuthAttribNameList'] = array();
$driverConfig['extAuthAttribTreatmentList'] = array ();
$driverConfig['extAuthAttribToIgnore'] = array();
?>
N'oubliez pas de modifier la configuration des serveurs pour votre environnement!
À bientôt!
ZiO
