Table des matières
Active Directory Authentification
Pour les versions 2013-05-10 “Weatherwax” et supérieures voir AuthAD Pour les plus anciennes versions, jusqu'à 2012-10-13 “Adora Belle”, voir ci-dessous. |
Ce back office d'authentification permet à DokuWiki de s'identifier aupres d'un serveur Active Directory.
Bien que l'authentification Active Directory puisse être faite avec le back office LDAP, il est plus facile de le faire avec ce back office. Il utilise l'excellente bibliothèque adLDAP et est basé sur un travail de James Van Lommel.
De plus il permet d'utiliser NTLM pour du SSO.
Ce back office pourrait être inclu dans une version future de DokuWiki
Téléchargement et Installation
Téléchargez le fichier suivant et décompressez le dans le dossier inc/auth/
:
Installation Notes
Ubuntu
Sous Ubuntu avec Apache 2 il vous faut vérifiez que l'extension PHP LDAP est activé, sinon vous aurez le message “User authentication is temporarily unavailable. If this situation persists, please inform your Wiki Admin”.
sudo apt-get install php5-ldap
Cela installera les modules nécessaires. Il faudra redémarrer Apache pour que les modifications soit prise en compte.
sudo /etc/init.d/apache2 restart
Configuration
Pour éviter qu'elle soit écrasée par le gestionnaire de configuration, il est recommandé de placer la configuration dans le fichier conf/local.protected.php
.
Paramètres minimal :
<?php // general DokuWiki options $conf['useacl'] = 1; $conf['disableactions'] = 'register'; $conf['authtype'] = 'ad'; // configure your Active Directory data here $conf['auth']['ad']['account_suffix'] = '@my.domain.org'; $conf['auth']['ad']['base_dn'] = 'DC=my,DC=domain,DC=org'; $conf['auth']['ad']['domain_controllers'] = 'srv1.domain.org, srv2.domain.org'; //multiple can be given
Paramètres optionnels :
$conf['auth']['ad']['sso'] = 1; $conf['auth']['ad']['ad_username'] = 'root'; $conf['auth']['ad']['ad_password'] = 'pass'; $conf['auth']['ad']['real_primarygroup'] = 1; $conf['auth']['ad']['use_ssl'] = 1; $conf['auth']['ad']['debug'] = 1;
Pour donner les droits de superuser, utilisez :
$conf['manager'] = '@LDAPGROUPNAME'; or $conf['superuser'] = '@LDAPGROUPNAME';
Note : les espaces dans le nom du groupe sont a remplacer par un _, @Domain_Users au lieu de @Domain Users
Reportez vous a adLDAP documentation pour une description des options.
Activation du SSO
Single Sign On (SSO) signifie que DokuWiki va utiliser les identifiants Windows pour vous identifier sans avoir besoin de vous identifier. Cela repose sur la variable serveur REMOTE_USER
. Le back office AD va l'utiliser pour récupérer d'autres données tel que les groupes.
Pour que cela fonctionne il faut activer le paramètre sso
dans local.protected.php
et surement fournir configurer un compte avec assez de droit pour récupérer les informations des utilisateurs info :
$conf['auth']['ad']['sso'] = 1; $conf['auth']['ad']['ad_username'] = 'MyManager'; $conf['auth']['ad']['ad_password'] = 'ManagerPass';
Il faudra en plus modifier les paramètres de vos navigateur et serveur web.
Web Serveur
SSO NTLM avec IIS
First configure IIS to use the Windows Logon for authentication (see screenshots):
- Open the IIS configuration console using “Start” → “Run” →
inetmgr
- Right click on the “Default Web Site” entry and choose “Properties”
- Switch to the “Directory Security” tab
- Click the “Edit” button on “Anonymous access and authentication control”.
- Disable “Anonymous access”
- Enable “Integrated Windows Authentication”
Then make sure NTLM is used as authentication protocol. This has to be done on the commandline:
- Open a command line: “Start” → “Run” →
cmd
- Change to the admin script directory:
cd \Inetpub\Adminscripts
- Check the current protocol:
cscript adsutil.vbs get w3svc/NTAuthenticationProviders
- if it doesn't say NTLM, set it:
cscript adsutil.vbs set w3svc/NTAuthenticationProviders “NTLM”
Now restart IIS.
NTLM based SSO on Apache
On Windows
Téléchargez http://sourceforge.net/projects/mod-auth-sspi/
Copiez le fichier mod_auth_sspi.so
dans votre répertoire de modules Apache.
Ajoutez les lignes suivantes au fichier httpd.conf :
LoadModule sspi_auth_module modules/mod_auth_sspi.so <Directory "c:/wamp/www/"> AuthName "My Intranet" AuthType SSPI SSPIAuth On SSPIAuthoritative On require valid-user </Directory>
Et redémarrez Apache.
On Linux
add info about mod_ntlm and similar here
Browser
Setup MS Internet Explorer
add detailed description
- add to trusted zone
- enable authentication forwarding
Setup Firefox
- Lancez Firefox et tapez about:config dans la bar d'adresse.
- Dans le champ ‘Filtre’ entrez network.automatic-ntlm-auth.trusted-uris
- Double cliquez sur le nom nom de l'option recherché
- Entrez les URLs des sites utilisant NTLM pour s'identifier :
http://intranet.company.com,http://email.company.lan
Vous pouvez separer les sites avec une virgule.