Bonjour,
Après plusieurs jours à rechercher sur des forums, j'ai ENFIN réussi à configurer mon SSO correctement. Ça fonctionne très bien!
J'en profite donc à partager mon tuto.
J'utilise Windows Server 2012 avec un Active Directory et NTP d'installé et mon serveur GestSup est hébergé sur une machine Linux Ubuntu 17.10.
Dans mon cas, le protocole HTTPS n'est pas configuré.
Windows Server 2012 (AD):
1-Créer utilisateur (gestsup) qui servira de synchronisation avec l’AD windows et la machine linux, cocher « Le mot de passe n’expire jamais »
2-Ajouter un SPN avec invite de commande en administrateur :
setpsn -A http/monsitegestsup.fr MONDOMAINE.LOCAL\gestsup
setspn -A HTTP/monsitegestsup.fr MONDOMAINE.LOCAL\gestsup
3-Créer un fichier keytab (fichier clé de service, contient le nom principal de service kerberos, ici gestsup) :
ktpass -out c:\kerb.keytab -princ HTTP/monsitegestsup.fr@MONDOMAINE.FR -mapuser gestsup@MONDOMAINE.LOCAL -pass motdepassecompteutilisateur -crypto all -ptype KRB5_NT_PRINCIPAL
Linux Ubuntu 17.10 (GestSup):
Petite précision:
- Configuration réseau : @IP statique, @IP DNS, modifier /etc/resolv.conf (adresses serveur DNS), modifier /etc/hosts (@DNS nomduserveur)
- Penser à mettre à jour GestSup à la version 3.1.29, synchroniser les utilisateurs AD sur GestSup et activer le SSO dans les paramètres
4-Mise à jour du poste (update et upgrade)
5-Installer « ntpdate » et synchroniser avec Windows Server 2012 (ntpdate nomduserveurwindows)
6-Installer les service Kerberos : « krb5-config » et « krb5-user », bien renseigner le royaume en MAJUSCULE (MONDOMAINE.LOCAL)
7-Récupérer le fichier keytab sur Windows Server 2012 et le copier dans /etc/apache2
8-Attribuer les droits sur le fichier keytab
chown www-data:root /etc/apache2/kerb.keytab
chmod 640 /etc/apache2/kerb.keytab
9-Modifier le fichier /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = MONDOMAINE.LOCAL
default_keytab_name = FILE:/etc/apache2/kerb.keytab
[realms]
MONDOMAINE.LOCAL = {
kdc = nomduserveurwindows:88
admin_server = nomduserveurwindows
default_domain = mondomaine.local
}
[domain.realm]
.mondomaine.local = MONDOMAINE.LOCAL
mondomaine.local = MONDOMAINE.LOCAL
10-Ajouter dans le fichier /etc/apache2/site-available/000.default.conf
<Directory "/var/www/html">
AuthType kerberos
AuthName "monsitegestsup.fr"
Krb5Keytab /etc/apache2/kerb.keytab
KrbAuthRealms MONDOMAINE.LOCAL
KrbMethodNegotiate on
KrbServiceName Any
KrbMethodK5Passwd off
Require valid-user
</Directory>
11-Redémarrer le service apache2 et tester le service kerberos:
service apache2 restart
kinit -k -t -V /etc/apache2/kerb.keytab HTTP/monsitegestsup.fr@MONDOMAINE.LOCAL
Aucun message d'erreur ne doit s'afficher.
Assurez vous de bien respecter la casse, c'est-à-dire les MAJUSCULES et minuscules.
En ce qui concerne les navigateurs web, j'utilise Mozilla Firefox. J'ai réussi à configurer le SSO sur 4 navigateurs: Internet Explorer, Mozilla Firefox, Microsoft Edge et Google Chrome
Pour Internet Explorer: aller dans Options Internet, Sécurité,Intranet local, Sites, Avancés et entrer l'adresse de votre site GestSup.
Pour ma part, j'ai déployé cette configuration par GPO pour l'ensemble de mes utilisateurs (valable également pour Microsoft Edge).
Pour Mozilla Firefox: entrer about:config dans la barre de recherche, rechercher et enter l'adresse de votre site GestSup dans network.negotiate-auth.delegation-uris et network.negotiate-auth.trusted-uris
Je suis en train de voir en ce moment comment déployer cette configuration sur l'ensemble de mes postes, soit par GPO, soit via un dossier partagé sur mon serveur windows dans le dossier NETLOGON.
Pour Google Chrome: aller dans Paramètres, Paramètres avancés, Paramètres du contenu, Cookies, et ajouter l'adresse de votre site GestSup dans l'emplacement "Autoriser".
Voilà ma procédure et pour moi ça fonctionne à merveille.
Cordialement,
Configuration SSO - Solution
Bonjour,
merci d'avoir pris le temps de rédigé cette procédure, avec votre accord je propose de mettre à jour la documentation avec votre tuto.
Cdt
merci d'avoir pris le temps de rédigé cette procédure, avec votre accord je propose de mettre à jour la documentation avec votre tuto.
Cdt
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
Bonjour,
Merci pour ce tuto très clair mais mon problème c'est que j'ai Windows Serveur 2008 R2 pour l'AD et un Windows Serveur 2016 pour Gestsup.
Du coup que dois-ton faire si on a gestsup pour Windows et non Linux svp ?
Merci d'avance.
Merci pour ce tuto très clair mais mon problème c'est que j'ai Windows Serveur 2008 R2 pour l'AD et un Windows Serveur 2016 pour Gestsup.
Du coup que dois-ton faire si on a gestsup pour Windows et non Linux svp ?
Merci d'avance.
GestSup: 3.2.11 | Windows Serveur: 2016 (Version 1607 build 14393) | Apache: 2.4.38a | MySQL: 5.7.25 | MariaDB: 10.2.14 | PHP: 7.4.1 (Wampserver 3.2.2.2 64bits)
Bonjour,
Pour la version Windows, il me semble que ça fonctionne grâce à l'ADFS.
A mon avis il faut activer KMSI sur le serveur.
Honnêtement je ne saurais plus vous répondre mais j'ai trouvé quelques infos:
https://blog.msresource.net/2016/07/07/ ... -settings/
https://docs.microsoft.com/fr-fr/window ... n-settings
Je regarderai la config exacte quand j'aurais un peu plus de temps (ça m'intéresse lol).
Cordialement,
Pour la version Windows, il me semble que ça fonctionne grâce à l'ADFS.
A mon avis il faut activer KMSI sur le serveur.
Honnêtement je ne saurais plus vous répondre mais j'ai trouvé quelques infos:
https://blog.msresource.net/2016/07/07/ ... -settings/
https://docs.microsoft.com/fr-fr/window ... n-settings
Je regarderai la config exacte quand j'aurais un peu plus de temps (ça m'intéresse lol).
Cordialement,
j'ai trouvé la solution en faisant encore plus simple, je partage si cela peut aider
Ce tuto concerne un Gestsup hébergé sur un serveur Windows !
Ma config: Windows Serveur 2008 R2 (pour héberger Gestsup) avec Wamp 3.1.3 64bit (Apache 2.4.33 - PHP 7.2.4 - MySQL 5.7.21 - MariaDB 10.2.14).
Pour le SSO, voici ce que j'ai fait :
Le module mod_auth_sspi.so n'est pas compatible avec Apache 2.4.
Il y a donc deux possibilités :
- utiliser le module mod_authnz_sspi.so (ce que j'ai fait)
http://www.apachelounge.com/viewtopic.p ... sc&start=0
https://sourceforge.net/p/mod-auth-sspi ... /1d7f5dba/
- utiliser le module mod_authn_ntlm.so
http://www.apachelounge.com/viewtopic.php?p=25073
1. Télécharger le module mod_authnz_sspi.so x86 ou x64 selon votre config :
https://www.apachehaus.net/modules/mod_authnz_sspi/
2. Extraire le module et le copier dans le dossier des modules Apache (pour moi: C:\wamp64\bin\apache\apache2.4.33\modules)
3. Ajouter dans le fichier httpd.conf (pour moi: C:\wamp64\bin\apache\apache2.4.33\conf) la ligne suivante :
LoadModule authnz_sspi_module modules/mod_authnz_sspi.so
4. Dé-commenter dans le fichier httpd.conf les lignes suivantes :
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_core_module modules/mod_authz_core.so
5. Dans httpd-vhosts.conf (pour moi: C:\wamp64\bin\apache\apache2.4.33\conf\extra), modifier le « directory » Gestsup pour intégrer l'authentification SSPI :
Pour ma part c'est comme ceci :
<VirtualHost *:80>
ServerName Support-info
ServerAlias Support-info
DocumentRoot "${INSTALL_DIR}/www/gestsup"
<Directory "${INSTALL_DIR}/www/gestsup">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
<IfModule authnz_sspi_module>
AuthName "Acces par SSO - Connexion automatique"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIOfferBasic On
# Should you need to force the login prompt, uncomment the next line
#SSPIBasicPreferred On
SSPIOfferSSPI On
SSPIOmitDomain On
require valid-sspi-user
require user "NT AUTHORITY\ANONYMOUS LOGON" denied
</IfModule>
</Directory>
</VirtualHost>
6. Redémarrer les services
7. Paramétrage du navigateur IE :
Il faut bien vérifier que “Activer l'authentification intégrée de Windows” dans les options avancées d' Internet Explorer soit bien coché.
Il faut penser à rajouter l'URL dans la liste des sites de confiance sous l'onglet Sécurité dans les options d'Internet Explorer.
8. Paramétrage du navigateur Firefox :
Dans la barre d'adresse, saisir "about:config"
Modifier la valeur :
network.negotiate-auth.delegation-uris = VOTRE AD
network.automatic-ntlm-auth.trusted-uris = http://VOTRE-SITE, https://VOTRE-SITE
network.negotiate-auth.trusted-uris = http://VOTRE-SITE, https://VOTRE-SITE
Redémarrer le navigateur
9. Paramétrage dans Gestsup :
Menu déroulant Administration puis Paramètres et onglet Connecteur.
Ensuite cocher la case Activer le SSO.
10. Test Gestsup : l'identification doit être automatique lors de l'accès au site.
Voila, pour moi cela à fonctionné
Ce tuto concerne un Gestsup hébergé sur un serveur Windows !
Ma config: Windows Serveur 2008 R2 (pour héberger Gestsup) avec Wamp 3.1.3 64bit (Apache 2.4.33 - PHP 7.2.4 - MySQL 5.7.21 - MariaDB 10.2.14).
Pour le SSO, voici ce que j'ai fait :
Le module mod_auth_sspi.so n'est pas compatible avec Apache 2.4.
Il y a donc deux possibilités :
- utiliser le module mod_authnz_sspi.so (ce que j'ai fait)
http://www.apachelounge.com/viewtopic.p ... sc&start=0
https://sourceforge.net/p/mod-auth-sspi ... /1d7f5dba/
- utiliser le module mod_authn_ntlm.so
http://www.apachelounge.com/viewtopic.php?p=25073
1. Télécharger le module mod_authnz_sspi.so x86 ou x64 selon votre config :
https://www.apachehaus.net/modules/mod_authnz_sspi/
2. Extraire le module et le copier dans le dossier des modules Apache (pour moi: C:\wamp64\bin\apache\apache2.4.33\modules)
3. Ajouter dans le fichier httpd.conf (pour moi: C:\wamp64\bin\apache\apache2.4.33\conf) la ligne suivante :
LoadModule authnz_sspi_module modules/mod_authnz_sspi.so
4. Dé-commenter dans le fichier httpd.conf les lignes suivantes :
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_core_module modules/mod_authz_core.so
5. Dans httpd-vhosts.conf (pour moi: C:\wamp64\bin\apache\apache2.4.33\conf\extra), modifier le « directory » Gestsup pour intégrer l'authentification SSPI :
Pour ma part c'est comme ceci :
<VirtualHost *:80>
ServerName Support-info
ServerAlias Support-info
DocumentRoot "${INSTALL_DIR}/www/gestsup"
<Directory "${INSTALL_DIR}/www/gestsup">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
<IfModule authnz_sspi_module>
AuthName "Acces par SSO - Connexion automatique"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIOfferBasic On
# Should you need to force the login prompt, uncomment the next line
#SSPIBasicPreferred On
SSPIOfferSSPI On
SSPIOmitDomain On
require valid-sspi-user
require user "NT AUTHORITY\ANONYMOUS LOGON" denied
</IfModule>
</Directory>
</VirtualHost>
6. Redémarrer les services
7. Paramétrage du navigateur IE :
Il faut bien vérifier que “Activer l'authentification intégrée de Windows” dans les options avancées d' Internet Explorer soit bien coché.
Il faut penser à rajouter l'URL dans la liste des sites de confiance sous l'onglet Sécurité dans les options d'Internet Explorer.
8. Paramétrage du navigateur Firefox :
Dans la barre d'adresse, saisir "about:config"
Modifier la valeur :
network.negotiate-auth.delegation-uris = VOTRE AD
network.automatic-ntlm-auth.trusted-uris = http://VOTRE-SITE, https://VOTRE-SITE
network.negotiate-auth.trusted-uris = http://VOTRE-SITE, https://VOTRE-SITE
Redémarrer le navigateur
9. Paramétrage dans Gestsup :
Menu déroulant Administration puis Paramètres et onglet Connecteur.
Ensuite cocher la case Activer le SSO.
10. Test Gestsup : l'identification doit être automatique lors de l'accès au site.
Voila, pour moi cela à fonctionné
GestSup: 3.2.11 | Windows Serveur: 2016 (Version 1607 build 14393) | Apache: 2.4.38a | MySQL: 5.7.25 | MariaDB: 10.2.14 | PHP: 7.4.1 (Wampserver 3.2.2.2 64bits)
Merci pour avoir partagé vos recherches je pense que cela va aider du monde.
Cdt
Cdt
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
Bonjour,
Bloqué sur cette étape:
Je n'ai pas ce fichier....
Est ce normal?
Debian 9 & NGINX
De même sur le tuto du site, je ne trouve pas ou configuré sa:
Sur le serveur WEB: Configurer apache avec les directives suivantes
Bloqué sur cette étape:
Code : Tout sélectionner
10-Ajouter dans le fichier /etc/apache2/site-available/000.default.conf
<Directory "/var/www/html">
AuthType kerberos
AuthName "monsitegestsup.fr"
Krb5Keytab /etc/apache2/kerb.keytab
KrbAuthRealms MONDOMAINE.LOCAL
KrbMethodNegotiate on
KrbServiceName Any
KrbMethodK5Passwd off
Require valid-user
</Directory>
Est ce normal?
Debian 9 & NGINX
De même sur le tuto du site, je ne trouve pas ou configuré sa:
Sur le serveur WEB: Configurer apache avec les directives suivantes
Code : Tout sélectionner
AuthType Kerberos
AuthName "GestSup Intranet"
KrbAuthRealms GESTSUP.LOCAL
KrbServiceName HTTP
Krb5Keytab /etc/apache2/kerb5.ktab
KrbMethodNegotiate On
KrbMethodK5Passwd On
require valid-user
GestSup : 3.1.47 | Debian: 9.8 | NGINX & MARIADB
Bonjour,
la procédure est faite pour un serveur Apache, je ne sait pas si c'est possible avec Nginx.
Cdt
la procédure est faite pour un serveur Apache, je ne sait pas si c'est possible avec Nginx.
Cdt
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/