L'authentification SSO pour domaines Windows
**IMPORTANT** Cette méthode d'authentification, ne peut fonctionner qu'en intranet, ou en VPN.
Le principe est de ne pas avoir à saisir de mot de passe pour rentrer dans l'application GED, mais de se baser sur l'utilisateur connecté à la session Windows.
Disponible à partir de la révision 7280
====== Configuration côté Serveur ======
===== Apache 2.2 =====
1. Installation du module Apache mod_auth_sspi
Extraire et copier le fichier mod_auth_sspi.so pour apache2.2 dans le répertoire apache2\modules
{{:doc:admin:mod_auth_sspi.zip|}}
Editer le fichier de configuration httpd.conf et
Ajouter le chargement du module avant les Alias
LoadModule sspi_auth_module modules/mod_auth_sspi.so
Ajouter les directives suivantes dans les deux directory www et www3
AuthType SSPI
SSPIAuth On
SSPIDomain 192.168.1.3
SSPIAuthoritative On
SSPIOfferBasic Off
SSPIPerRequestAuth On
require valid-user
voir exemple ci-dessous :
Alias "/ezged2" "C:/nchp/usr/local/nchp/ezged/www/"
Options Indexes FollowSymLinks Includes
AuthType SSPI
SSPIAuth On
SSPIDomain 192.168.1.3
SSPIAuthoritative On
SSPIOfferBasic Off
SSPIPerRequestAuth On
require valid-user
AllowOverride All
Allow from all
Alias "/ezged" "C:/nchp/usr/local/nchp/ezged/www3/"
Alias "/ezged3" "C:/nchp/usr/local/nchp/ezged/www3/"
Options Indexes FollowSymLinks Includes
AuthType SSPI
SSPIAuth On
SSPIDomain 192.168.1.3
SSPIAuthoritative On
SSPIOfferBasic Off
SSPIPerRequestAuth On
require valid-user
AllowOverride All
Allow from all
Redémarrer le service Apache2.2
===== Apache 2.4 =====
==== mod_authn_ntlm ====
Pour apache 2.4 c'est le module mod_authn_ntlm qui semble fonctionner le mieux.
Le github du projet: https://github.com/TQsoft-GmbH/mod_authn_ntlm
Le binaire du module:
* Pour un apache 32 bits : http://updates.nchp.net/apache24/mod_authn_ntlm-1.0.8-x86-vc15.zip
* Pour un apache 64 bits : http://updates.nchp.net/apache24/mod_authn_ntlm-1.0.8-x64-vc15.zip
Les binaires ci-dessus ainsi que d'autres versions (VC16) sont téléchargeables aussi sur https://www.apachehaus.com/cgi-bin/download.plx
Le fichier mod_authn_ntlm est à placer dans le répertoire des modules d'apache (e.g: C:\nchp\apache) \\
Il convient ensuite d'activer le module en ajoutant la ligne suivante dans le fichier httpd.conf:
LoadModule auth_ntlm_module modules/mod_authn_ntlm.so
Il faut également activer le module headers:
LoadModule headers_module modules/mod_headers.so
Avant d'aller plus loin redémarrez Apache afin de vous assurer qu'aucune erreur ne survient. Si c'est le cas c'est sans doute que la version du module n'est pas compatible avec la version d'apache. L'architecture cible et la version de visual studio utilisée pour la compilation doit être la même pour apache et le module.
Configuration du directory:
RequestHeader unset X_ISRW_PROXY_AUTH_USER
Alias "/ezged" "C:\nchp/usr/local/nchp/ezged/www"
Options Indexes FollowSymLinks Includes
AuthType SSPI
NTLMAuth On
NTLMAuthoritative On
NTLMDomain 192.168.1.30
Require valid-user
RequestHeader set X_ISRW_PROXY_AUTH_USER expr=%{REMOTE_USER}
RequestHeader unset X_ISRW_PROXY_AUTH_USER est à placer avant tout les alias et directory qui sont définis dans la section Ezged de la config Apache. Sinon il ne sera pas fait pour les alias/directory évalués avant
====== Configuration côté Client ======
- Firefox
Tapez about:config
Changez les variables suivantes :
network.automatic-ntlm-auth.trusted-uris http://urldebasedemonserveurged
network.auth.use-sspi true
- Internet explorer
Dans options onglet Avancé d'Internet Explorer , dans sécurité, cocher *Activer l'authentification Windows intégrée.
Dans options onglet Sécurité dans la zone intranet local ajouter le site http://urldebasedemonserveurged
====== Configuration EzGED ======
Modification du fichier config_local.php dans c:\nchp\usr\local\nchp\ezged\www
Ajouter les lignes suivantes :
//// SSO Windows authentication
/**
This parameter is used to enabled/disabled active directory authentication
@param $authw2ksso : 0 => disabled , 1 => enabled
*/
$authw2ksso=1;
$usercreationgroup =2 ; //id of group to create unknown usr in -> 0 = no automatic creation of users
le $usercreationgroup =2 , indique l'id du groupe vers lequel seront créés les utilisateurs inconnus dans EzGED, si vous ne souhaitez pas créer automatiquement les utilisateurs, mettez 0
====== Comptes users ======
Chaque compte est automatiquement créé dans la GED lorsque l'user se connecte la première fois.