DokuWiki

It's better when it's simple

Outils pour utilisateurs

Outils du site


fr:auth:ad

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):

  1. Open the IIS configuration console using “Start” → “Run” → inetmgr
  2. Right click on the “Default Web Site” entry and choose “Properties”
  3. Switch to the “Directory Security” tab
  4. Click the “Edit” button on “Anonymous access and authentication control”.
  5. Disable “Anonymous access”
  6. Enable “Integrated Windows Authentication”

Choose properties on the default website Switch to the Security Tab and edit the authentication controls Disable anonymous access and select Integrated Authentication

Then make sure NTLM is used as authentication protocol. This has to be done on the commandline:

  1. Open a command line: “Start” → “Run” → cmd
  2. Change to the admin script directory: cd \Inetpub\Adminscripts
  3. Check the current protocol: cscript adsutil.vbs get w3svc/NTAuthenticationProviders
  4. 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

FIXME add info about mod_ntlm and similar here

Browser

Setup MS Internet Explorer

FIXME add detailed description

  1. add to trusted zone
  2. enable authentication forwarding

Setup Firefox

  1. Lancez Firefox et tapez about:config dans la bar d'adresse.
  2. Dans le champ ‘Filtre’ entrez network.automatic-ntlm-auth.trusted-uris
  3. Double cliquez sur le nom nom de l'option recherché
  4. 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.

fr/auth/ad.txt · Dernière modification : 2017-09-10 09:40 de schplurtz

Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki