MediaWiki est un logiciel wiki utilisé par le très connu Wikipedia.
Plusieurs extensions permettent de configurer le SSO dans MediaWiki :
Nous expliquons ici comment utiliser le dernier : HTTP Auth.
L'extension HTTP Auth est presentée ici : http://www.mediawiki.org/wiki/Extension:HttpAuth
Il est possible de télécharger le code ici : http://github.com/oremj/mediawiki-http-auth/downloads
Il faut installer HttpAuthPlugin.php
dans le répertoire extensions/
de MediaWiki :
cp HttpAuthPlugin.php extenstions/
Éditer ensuite les paramètres locaux MediaWiki
vi LocalSettings.php
session_start(); $_SERVER['PHP_AUTH_USER'] = $_SERVER['REMOTE_USER']; if ((!empty($_SERVER['PHP_AUTH_USER']) && !empty($_SERVER['REMOTE_USER'])) || $_COOKIE[$wgDBserver . 'UserID']) { require_once("$IP/extensions/HttpAuthPlugin.php"); $wgAuth = new HttpAuthPlugin(); # For MediaWiki < 1.13 $wgHooks['AutoAuthenticate'][] = array($wgAuth,'autoAuthenticate'); # For MediaWiki >= 1.13 #$wgHooks['UserLoadFromSession'][] = array($wgAuth,'autoAuthenticate'); }
Configurer l'hôte virtuel Mediawiki comme n'importe quel autre hôte virtuel protégé.
<VirtualHost *:80> ServerName mediawiki.example.com PerlHeaderParserHandler Lemonldap::NG::Handler ... </VirtualHost>
Aller dans le manager et créer un nouvel hôte virtuel pour Mediawiki.
Configurer simplement la règle d'accès. Il est possible d'ajouter une règle pour la déconnexion :
Userlogout => logout_sso
Si LL::NG est utilisé par reverse-proxy, configurer l'en-tête Auth-User
, aucun autre en-tête n'est utile.