Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Dernière révision Les deux révisions suivantes | ||
tuto:webapps:llng:dokuwiki [28/12/2010 18:47] dani [Configuration du plugin] |
tuto:webapps:llng:dokuwiki [13/07/2012 12:23] dani [Version LL::NG simple] |
||
---|---|---|---|
Ligne 13: | Ligne 13: | ||
* Règle: accept | * Règle: accept | ||
- | Si par contre, vous voulez avoir une partie publique, et une privée, il faut deux règles | + | Si par contre, vous voulez avoir une partie publique, et une privée, il faut un peu plus de règles |
- | * Commentaire: | + | * Commentaire: |
- | * Expression: ^/ | + | * Expression: ^/data |
- | * Règle: | + | * Règle: deny |
+ | |||
+ | * Commentaire: | ||
+ | * Expression: ^/ | ||
+ | * Règle: $groups =~ / | ||
+ | |||
+ | * Commentaire: | ||
+ | * Expression: ^/ | ||
+ | * Règle: | ||
* Expression: default | * Expression: default | ||
* Règle: unprotect | * Règle: unprotect | ||
- | La première règle permet de rediriger | + | La première règle permet de protéger l' |
==== En-têtes HTTP ==== | ==== En-têtes HTTP ==== | ||
Ligne 45: | Ligne 53: | ||
<code bash> | <code bash> | ||
- | db domains | + | db domains |
- | signal-event domain-modify | + | signal-event domain-create |
</ | </ | ||
===== Installer le plugin LemonLDAP pour DokuWiki ===== | ===== Installer le plugin LemonLDAP pour DokuWiki ===== | ||
+ | |||
+ | Nous avons écrit 2 plugins permettant de s' | ||
+ | |||
+ | ==== Version LL::NG simple ==== | ||
+ | |||
+ | Avec ce plugin, dokuwiki n'a pas besoin d'un accès au serveur LDAP, puisque ces informations sont transférées à dokuwiki par LemonLDAP:: | ||
+ | * le nom complet de l' | ||
+ | * le mail de l' | ||
+ | * la liste des groupes dont un utilisateur est membre ($groups) | ||
Il suffit de copier/ | Il suffit de copier/ | ||
- | <code php> | + | |
+ | <file php lemonldapng.class.php> | ||
<?php | <?php | ||
/** | /** | ||
Ligne 96: | Ligne 114: | ||
if(empty($this-> | if(empty($this-> | ||
if(empty($this-> | if(empty($this-> | ||
- | } | ||
- | |||
- | function logOff(){ | ||
- | setcookie(DokuWiki, | ||
- | // Head the Lemon Logout page | ||
- | $location = array(); | ||
- | if ( preg_match("# | ||
- | header(' | ||
- | } else { | ||
- | nice_die(" | ||
- | } | ||
} | } | ||
Ligne 135: | Ligne 142: | ||
} | } | ||
} | } | ||
- | </code> | + | </file> |
Il ne reste plus qu'à modifier la configuration de dokuwiki pour qu'il utilise ce nouveau plugin pour l' | Il ne reste plus qu'à modifier la configuration de dokuwiki pour qu'il utilise ce nouveau plugin pour l' | ||
Ligne 142: | Ligne 149: | ||
</ | </ | ||
- | ===== Configuration du plugin ===== | ||
Le plugin ne nécessite pas réellement de configuration, | Le plugin ne nécessite pas réellement de configuration, | ||
Ligne 153: | Ligne 159: | ||
</ | </ | ||
- | Enjoy ;-) | + | L' |
+ | |||
+ | ==== Version LDAP ==== | ||
+ | Ce plugin là surcharge simplement le plugin LDAP fournit de base, il ne remplace que la vérification du mot de passe. Ce fichier est à placer dans inc/ | ||
+ | |||
+ | <file php httpldap.class.php> | ||
+ | |||
+ | <?php | ||
+ | /** | ||
+ | * HTTP/LDAP authentication backend | ||
+ | * HTTP (your web server) handle the authentication | ||
+ | * LDAP handle user informations, | ||
+ | * This plugin have been written to work with LemonLDAP:: | ||
+ | * @license | ||
+ | * @author | ||
+ | */ | ||
+ | |||
+ | require(" | ||
+ | class auth_httpldap extends auth_ldap { | ||
+ | var $cnf = null; | ||
+ | |||
+ | /** | ||
+ | * Posible things an auth backend module may be able to | ||
+ | * do. The things a backend can do need to be set to true | ||
+ | * in the constructor. | ||
+ | */ | ||
+ | var $cando = array ( | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ); | ||
+ | |||
+ | |||
+ | /** | ||
+ | * Constructor | ||
+ | */ | ||
+ | function auth_httpldap() { | ||
+ | global $conf; | ||
+ | $this->cnf = $conf[' | ||
+ | |||
+ | // ldap extension is needed | ||
+ | if(!function_exists(' | ||
+ | if ($this-> | ||
+ | msg(" | ||
+ | $this-> | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | if(empty($this-> | ||
+ | if(empty($this-> | ||
+ | if(empty($this-> | ||
+ | } | ||
+ | |||
+ | |||
+ | /** | ||
+ | * Check if REMOTE_USER is set | ||
+ | */ | ||
+ | function trustExternal($user, | ||
+ | global $USERINFO; | ||
+ | $success = false; | ||
+ | $username = $_SERVER[' | ||
+ | // print info if debug is enabled | ||
+ | if ($this-> | ||
+ | msg(' | ||
+ | } | ||
+ | if (!empty($username)){ | ||
+ | $USERINFO = $this-> | ||
+ | $success = true; | ||
+ | $_SESSION[DOKU_COOKIE][' | ||
+ | $_SESSION[DOKU_COOKIE][' | ||
+ | } | ||
+ | // Deny access if user is not found in LDAP | ||
+ | // This should never happen | ||
+ | if (!empty($USERINFO[' | ||
+ | $success = false; | ||
+ | } | ||
+ | return $success; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | La configuration de ce plugin est parfaitement identique au module LDAP de base, exemple: | ||
+ | <code php> | ||
+ | $conf[' | ||
+ | $conf[' | ||
+ | $conf[' | ||
+ | $conf[' | ||
+ | $conf[' | ||
+ | $conf[' | ||
+ | $conf[' | ||
+ | </ | ||
+ | |||
+ | La seule partie importante ici, c'est **$conf[' |