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
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
Editer le fichier de configuration httpd.conf et
Ajouter le chargement du module avant les Alias
<IfModule !mod_auth_sspi.c> LoadModule sspi_auth_module modules/mod_auth_sspi.so </IfModule>
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/" <Directory "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 </Directory> Alias "/ezged" "C:/nchp/usr/local/nchp/ezged/www3/" Alias "/ezged3" "C:/nchp/usr/local/nchp/ezged/www3/" <Directory "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 </Directory>
Redémarrer le service Apache2.2
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:
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" <Directory "C:\nchp/usr/local/nchp/ezged/www"> Options Indexes FollowSymLinks Includes AuthType SSPI NTLMAuth On NTLMAuthoritative On NTLMDomain 192.168.1.30 <RequireAll> <RequireAny> Require valid-user </RequireAny> </RequireAll> RequestHeader set X_ISRW_PROXY_AUTH_USER expr=%{REMOTE_USER} </Directory>
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
Tapez about:config Changez les variables suivantes : network.automatic-ntlm-auth.trusted-uris http://urldebasedemonserveurged network.auth.use-sspi true
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
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
Chaque compte est automatiquement créé dans la GED lorsque l'user se connecte la première fois.