Page 1 sur 2

Configuration SSO - Solution

Posté : ven. 2 mars 2018 10:49
par dumpau62
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,

Re: Configuration SSO - Solution

Posté : ven. 2 mars 2018 11:31
par Flox
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

Re: Configuration SSO - Solution

Posté : ven. 2 mars 2018 12:05
par dumpau62
Pas de soucis! Cela servira à plus d'un je pense.

Cdlt

Re: Configuration SSO - Solution

Posté : mer. 2 mai 2018 17:09
par adrienl
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.

Re: Configuration SSO - Solution

Posté : ven. 4 mai 2018 11:17
par dumpau62
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,

Re: Configuration SSO - Solution

Posté : mar. 15 mai 2018 10:43
par adrienl
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

Re: Configuration SSO - Solution

Posté : mar. 15 mai 2018 14:13
par Flox
Merci pour avoir partagé vos recherches je pense que cela va aider du monde.

Cdt

Re: Configuration SSO - Solution

Posté : jeu. 17 mai 2018 11:50
par dumpau62
Bonjour,

Merci pour ces infos!

Re: Configuration SSO - Solution

Posté : mar. 2 avr. 2019 11:36
par okba6z
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

Re: Configuration SSO - Solution

Posté : mar. 2 avr. 2019 11:57
par Flox
Bonjour,

la procédure est faite pour un serveur Apache, je ne sait pas si c'est possible avec Nginx.

Cdt