Configuration SSO - Solution
Posté : ven. 2 mars 2018 10:49
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,
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,