Configuration SSO - Solution

Installation & Configuration du logiciel
Avatar du membre
dumpau62
Gsup LEVEL 4
Messages : 121
Enregistré le : ven. 15 sept. 2017 15:14

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,
Modifié en dernier par dumpau62 le ven. 4 mai 2018 11:22, modifié 2 fois.
GestSup: 3.2.24 | Debian: 11 | MariaDB: 10.5.19 | PHP: 8.2.5
Avatar du membre
Flox
Administrateur du site
Messages : 8931
Enregistré le : jeu. 21 juin 2012 19:00

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
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.58 | MariaDB: 11.3.2 | PHP: 8.3.4 | https://doc.gestsup.fr/
Avatar du membre
dumpau62
Gsup LEVEL 4
Messages : 121
Enregistré le : ven. 15 sept. 2017 15:14

Pas de soucis! Cela servira à plus d'un je pense.

Cdlt
GestSup: 3.2.24 | Debian: 11 | MariaDB: 10.5.19 | PHP: 8.2.5
adrienl
Gsup LEVEL 1
Messages : 21
Enregistré le : mar. 16 janv. 2018 11:44

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.
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)
Avatar du membre
dumpau62
Gsup LEVEL 4
Messages : 121
Enregistré le : ven. 15 sept. 2017 15:14

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,
adrienl
Gsup LEVEL 1
Messages : 21
Enregistré le : mar. 16 janv. 2018 11:44

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.

Image
Image

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

Image

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é :D
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)
Avatar du membre
Flox
Administrateur du site
Messages : 8931
Enregistré le : jeu. 21 juin 2012 19:00

Merci pour avoir partagé vos recherches je pense que cela va aider du monde.

Cdt
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.58 | MariaDB: 11.3.2 | PHP: 8.3.4 | https://doc.gestsup.fr/
Avatar du membre
dumpau62
Gsup LEVEL 4
Messages : 121
Enregistré le : ven. 15 sept. 2017 15:14

Bonjour,

Merci pour ces infos!
okba6z
Gsup LEVEL 3
Messages : 88
Enregistré le : ven. 14 déc. 2018 16:38

Bonjour,
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>
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

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
Avatar du membre
Flox
Administrateur du site
Messages : 8931
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

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.58 | MariaDB: 11.3.2 | PHP: 8.3.4 | https://doc.gestsup.fr/
Répondre