You are not logged in.
Pages: 1
Bonjour,
( DC = Windows 2012 R2, Client = Windows10, IE = 11, Serveur GLPI = Ubuntu 16.04, Apache = 2.4)
Je sais qu'il y a déjà pas mal de post à ce sujet mais aucun ne me conviens ou n'a résolu mon problème.
Je souhaite comme l'indique le titre que mes utilisateurs se connectent sans avoir à renseigner leur identifiants.
Je suis donc partis vers Kerberos naturellement ( NTLM pas essayé ) , j'ai suivis de (très) nombreux forums à la recherche d'une procédure unique et fiable pour mon OS ( Ubuntu 16.04 ) mais sans fin.
Je me retourne vers cette communauté pour avoir j'espère cette solution. ( d'ailleurs ou beaucoup ont mon problème ).
Voici les paquets installé et les fichier de configurations :
krb5-user libapache2-mod-auth-kerb ntpdate
Fichier krb5.conf
[libdefaults]
default_realm = DOMAIN.LAN
dns_lookup_realm = true
dns_lookup_kdc = false
default_keytab_name = FILE:/etc/kerberos.keytab
…………………………………………………………….
[realms]
DOMAIN.LAN = {
kdc = DC.DOMAIN.lan
admin_server = DC.DOMAIN.lan
……………………………………………………………...
[domain_realm]
.domain.fr = DOMAIN.LAN
domain.fr = DOMAIN.LAN
Test de ntpdate
ntpdate DC.DOMAIN.LAN
Résultat:
19 Jun 10:40:35 ntpdate[16562]: step time server IP.DC offset -0.894102 sec
Création du fichier "Keytab" sur le DC:
ktpass -princ HTTPS/server.glpi.domain.fr@DOMAIN.LAN -mapuser __USER__@DOMAIN.LAN -pass __PASSWORD__ -crypto ALL -ptype KRB5_NT_PRINCIPAL -out C:\Temp\kerberos.keytab
Ensuite je récupère le fichier via ftp que je dépose dans le répertoire /etc et je lui attribut les droits suivant :
chown www-data:root /etc/kerberos.keytab
chmod 640 /etc/kerberos.keytab
Test d'une identification sur le domaine
kinit -p lambda@DOMAIN.LAN
Aucun message d'erreur la commande me renvoie de saisir mon mot de passe :
Password for test@MMJ.LAN:
Lors d'un klist je vois bien mon ticket.
Vérification d'une authentification de service avec kvno :
Commande:
kvno HTTPS/server.glpi.domain.fr@DOMAIN.LAN
Retour:
HTTPS/server.glpi.domain.fr@DOMAIN.LAN : kvno = 4
Ce qui veut dire qu'on a pas de double SPN et que notre keytab est bien généré
Pour clôturer les test d'authentification sur le serveur glpi voici la commande :
kinit -k -t /etc/krb5.keytab HTTPS/server.glpi.domain.fr@DOMAIN.LAN
Partie VHOST:
Pour la partie commande Kerberos je me suis placé dans le fichier VHOST de mon site :
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName server.glpi.domain.fr
DocumentRoot /var/www/html
<Location />
AuthType Kerberos
AuthName "SSO"
KrbAuthRealms DOMAIN.LAN
KrbServiceName HTTPS/server.glpi.domain.fr
Krb5Keytab /etc/kerberos.keytab
KrbMethodNegotiate On
KrbMethodK5Passwd On ##( ou off pour enlever la fenêtre pop-up Windows sécurité ) ##
KrbSaveCredentials On
require valid-user
</Location>
Vérifications de mes paramètres IE :
- "Authentification Windows activé" : OK
-Ajout de mon site sécurisé dans la zone Local intranet :OK
Vérification de mes paramètres Firefox :
- Ajout de ma valeur de domaine dans : network.negotiate-auth.trusted-uris et network.negotiate-auth.delegation-uris
Et lors de mes tests sur IE ou Firefox je me prend une erreur 401, la jonction entre les clients et le DC ne se fait visiblement pas.
Merci d'avance pour votre aide et n'hésitez pas à me poser des questions .
Cordialement
(Version GLPI = 9.4.1.1, FusionInventory = 9.4.1.1, DC = Windows 2012 R2, Client = Windows10, IE = 11, Serveur GLPI = Ubuntu 16.04, Apache = 2.4, MYSQL = 5.7)
Offline
Bonjour,
Ici, GLPI tourne avec Wampp, mais voici mon vhost :
<Directory "c:/wamp64/www/glpi">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
#Require all granted
<IfModule authnz_sspi_module>
AuthName "Accès par SSO"
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>
Et tout fonctionne.
A adapter pour du kerberos.
Offline
Merci de ta réponse rapide .
Du coup je dois adapter avec du "GSSAPI" pour du Linux ?
Cordialement ?
(Version GLPI = 9.4.1.1, FusionInventory = 9.4.1.1, DC = Windows 2012 R2, Client = Windows10, IE = 11, Serveur GLPI = Ubuntu 16.04, Apache = 2.4, MYSQL = 5.7)
Offline
Merci de ta réponse rapide .
Du coup je dois adapter avec du "GSSAPI" pour du Linux ?
Cordialement ?
Tu peux tenter de modifier ton vhost avant comme cela :
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/html>
AuthName "Secure Access"
AuthType Kerberos
Krb5Keytab /etc/apache2/krb5-http.keytab
KrbMethodK5Passwd off
KrbSaveCredentials on
require valid-user
AllowOverride None
Order allow,deny
allow from all
</Directory>
Essaies cela avant changer le type d'authentification.
Offline
Des nouvelles,
J'ai enfin réussis à faire fonctionner le SSO comme je le souhaite, je poste juste en dessous la conf' qui est la bonne ( dans mon cas ) :
L'ancienne erronée :
<Location />
AuthType Kerberos
AuthName "SSO"
KrbAuthRealms DOMAIN.LAN
KrbServiceName HTTPS/server.glpi.domain.fr
Krb5Keytab /etc/kerberos.keytab
KrbMethodNegotiate On
KrbMethodK5Passwd On ##( ou off pour enlever la fenêtre pop-up Windows sécurité ) ##
KrbSaveCredentials On
require valid-user
</Location>
La nouvelle fonctionnelle: ( * changement par rapport à l'ancienne)
<Location />
AuthType Kerberos
AuthName "SSO"
KrbAuthRealms DOMAIN.LAN
KrbServiceName HTTP/server.glpi.domain.fr (* J'ai remplacé le protocole HTTPS par HTTP)
Krb5Keytab /etc/kerberos_HTTP.keytab
KrbMethodNegotiate On
KrbMethodK5Passwd Off (* pour ne plus avoir la fenêtre de sécurité Windows )
KrbSaveCredentials On
require valid-user
Order allow,deny (* Couplé avec Allow from et Satisfy Any )
Allow from 10.53.0.0 (* Accepte uniquement l'authentification des clients situé dans ce range )
Satisfy Any (* Pour ne pas se prendre l'erreur 401 en pleine figure, et du coup remet la page d'authentification GLPI basique)
</Location>
Les trois derniers paramètres sont à mettre ensembles
Merci à toi lanaijulie, d'avoir apportée des solutions.
Cordialement
(Version GLPI = 9.4.1.1, FusionInventory = 9.4.1.1, DC = Windows 2012 R2, Client = Windows10, IE = 11, Serveur GLPI = Ubuntu 16.04, Apache = 2.4, MYSQL = 5.7)
Offline
Des nouvelles,
KrbServiceName HTTP/server.glpi.domain.fr (* J'ai remplacé le protocole HTTPS par HTTP)
Le changement nécessite évidemment un renouvellement de la Keytab.
Cordialement
(Version GLPI = 9.4.1.1, FusionInventory = 9.4.1.1, DC = Windows 2012 R2, Client = Windows10, IE = 11, Serveur GLPI = Ubuntu 16.04, Apache = 2.4, MYSQL = 5.7)
Offline
Bonsoir
Auriez vous une procédure pour l'intégration du SSO s'il vous plaît ?
Merci d'avance
Offline
Pour la config d'apache il est possible de faire ceci
<If "%{QUERY_STRING} !~ /^noext=1/">
<Limit GET>
AuthType GSSAPI
AuthName "Kerberos Login"
GssapiCredStore keytab:/etc/apache2/krb.keytab
require valid-user
ErrorDocument 401 /index.php?noext=1
</Limit>
</If>
Ca permet de faire l'authentification et si ça ne marche pas de redireger vers une autre page sans auth SSO
Glpi 10.0.3
Offline
Bonjour
Je suis un peu dans le meme cas
AD en win2012, apache2.4 sur un Ubuntu Server 22.04
J'ai enfin reussi a faire marcher le SSO, mais a peu pres
quand je vais sur la page de glpi, j'arrive sur la mire de demande de login/mdp, l'authentification automatique ne se fait pas
y'a t'il une autre modif complementaire a faire ? ou une option de configuration quelque part à activer ?
edit : bon, en fait il manquait une conf coté IHM / interface d'admin
dans : Configuration / Autre Méthode
section : Autre méthode d'authentification HTTP / il fallait aussi indiquer le champ de stockage de l'identifiant dans la requete (REMOTE_USER)
c'etait vide par defaut chez moi, une fois renseigner, l'authentification se fait de manière complétement transparente via Kerberos/SSO avec module GSSAPI dans Apache.
d'un coup ca marche mieux
Merci aussi aux précédent message qui m'auront aider pour la conf GSSAPI justement (j'arretais pas de me prendre des erreurs 401 au debut)
je met aussi ma conf apache si ca peut aider en complement des autres
<Directory /var/www/glpi>
Options FollowSymlinks
AllowOverride All
AuthType GSSAPI
AuthName "GLPI"
GssapiCredStore keytab:/etc/cle.krb.keytab
GssapiUseSessions On
GssapiLocalName On
Require valid-user
</Directory>
mon user_sso.krb.keytab a été généré via ligne de commande (executé en tant qu'admin) depuis mon serveur AD
ktpass -princ HTTP/<fqdn.serveur@DOMAINE.NET -mapuser <cpt_service>@DOMAINE.NET -pass <mdp> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -out C:\Temp\cle.krb.keytab
le fqdn.serveur pour la commande, doit correspondre au FQDN déclaré dans le DNS pour votre serveur web.
bien respecter à mettre DOMAINE.NET en Majuscule
cpt_service = compte de service crée pour cela sur l'AD, le compte doit juste etre en utilisateur domaine, et accepter le cryptage kerberos 256bits
la clé généré peut etre recopié sur votre serveur web/apache, avec les droits 640 et owner www-data:root
mon site ne fait que du HTTP (c'est pour de l'intra, pas d'acces externe)
Last edited by Chico008 (2022-12-30 15:43:10)
Offline
Bonjour, je suis sur AD Win2019, Apache 2.4 sur Debian 11.
Pour moi le SSO ne fonctionne pas. Pourtant j'ai bien le GSSAPI actif et le fichier apache comme toi.
Tu peux m'aider ?
Bonjour
Je suis un peu dans le meme cas
AD en win2012, apache2.4 sur un Ubuntu Server 22.04
J'ai enfin reussi a faire marcher le SSO, mais a peu presquand je vais sur la page de glpi, j'arrive sur la mire de demande de login/mdp, l'authentification automatique ne se fait pas
y'a t'il une autre modif complementaire a faire ? ou une option de configuration quelque part à activer ?edit : bon, en fait il manquait une conf coté IHM / interface d'admin
dans : Configuration / Autre Méthode
section : Autre méthode d'authentification HTTP / il fallait aussi indiquer le champ de stockage de l'identifiant dans la requete (REMOTE_USER)
c'etait vide par defaut chez moi, une fois renseigner, l'authentification se fait de manière complétement transparente via Kerberos/SSO avec module GSSAPI dans Apache.d'un coup ca marche mieux
Merci aussi aux précédent message qui m'auront aider pour la conf GSSAPI justement (j'arretais pas de me prendre des erreurs 401 au debut)
je met aussi ma conf apache si ca peut aider en complement des autres<Directory /var/www/glpi> Options FollowSymlinks AllowOverride All AuthType GSSAPI AuthName "GLPI" GssapiCredStore keytab:/etc/cle.krb.keytab GssapiUseSessions On GssapiLocalName On Require valid-user </Directory>
mon user_sso.krb.keytab a été généré via ligne de commande (executé en tant qu'admin) depuis mon serveur AD
ktpass -princ HTTP/<fqdn.serveur@DOMAINE.NET -mapuser <cpt_service>@DOMAINE.NET -pass <mdp> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -out C:\Temp\cle.krb.keytab
le fqdn.serveur pour la commande, doit correspondre au FQDN déclaré dans le DNS pour votre serveur web.
bien respecter à mettre DOMAINE.NET en Majuscule
cpt_service = compte de service crée pour cela sur l'AD, le compte doit juste etre en utilisateur domaine, et accepter le cryptage kerberos 256bits
la clé généré peut etre recopié sur votre serveur web/apache, avec les droits 640 et owner www-data:rootmon site ne fait que du HTTP (c'est pour de l'intra, pas d'acces externe)
Glpi 10
Offline
Bonjour Chico008,
Mon SSO fonctionne depuis pas mal de temps avec une configuration proche de la tienne. Mon seul problème reste à faire fonctionner le plan B, c'est à dire si le SSO ne trouve pas, aller à la mise d'authentification de GLPI.
J'ai testé plusieurs trucs mais sans succès notamment
ErrorDocument 401 ./index.php?noAuto=1
Je pense que c'est faisable avec les Order Alloxw Deny mais j'ai pas trouvé le bon truc là non plus.
Si une âme charitable a la solution, banco ..
Merci
Offline
Bonjour nladet,
Avez-vous trouvé une solution à votre problème ?
Merci
Offline
Tient j'avais pas vu les réponses
pour les soucis, vous pouvez tester, depuis votre serveur linux, que la clé kerberos fonctionne.
pour cela il faut tester une connexion ad en ligne de commande en utilisant votre comtpe kerberos et le certificat
si deja ca passe pas, le sso marchera pas > problème de flux ou d'authentification
par contre j'ai plus les commandes en tete, a chercher
pour la redirection en cas d'erreur pareil, j'ai jamais reussi a faire marché, mais de notre coté l'acces a glpi est aussi lié au fait que t'es un compte AD, pas de compte AD, pas d'accès à rien de toute facon, donc c'est pas trop un soucis pour moi.
Offline
Bonjour,
Mon SSO fonctionne correctement sauf pour les utilisateurs qui ne sont pas dans le domaine. Lorsqu'ils veulent accéder au site, ils sont directement redirigés vers la page d'authentification et se connectent normalement. Par contre le problème est que le CSS ne s'applique plus.
Voici ce que je retouve dans les logs:
access.log
a.b.c.d - - [21/Feb/2024:11:59:27 +0100] "GET /index.php HTTP/1.1" 401 17051 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0"
a.b.c.d - - [21/Feb/2024:11:59:27 +0100] "GET /index.php HTTP/1.1" 401 11870 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0"
a.b.c.d - - [21/Feb/2024:11:59:28 +0100] "GET /public/lib/base.min.css?v=77fc7620a07577bb0cd1cf6c7aec7f7829e3bfb3 HTTP/1.1" 401 212109 "https://serveur/index.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0"
error.log:
[Wed Feb 21 13:16:41.531571 2024] [auth_gssapi:error] [pid 344547] [client a.b.c.d:e] GSS ERROR In Negotiate Auth: gss_accept_sec_context() failed: [An unsupported mechanism was requested (Unknown error)], referer: https://serveur/index.php
Nous sommes passé de la version 9.5.6 à la version 10.0.11, avec PHP 8.2 et Debian 12.
Je ne sais pas d'où vient le problème.
Merci d'avance pour votre aide.
Last edited by mlk (2024-03-18 16:12:33)
Offline
Bonjour,
J'ai finalement trouvé la solution à mon problème.
Pour rappel, les utilisateurs hors du domaine n'arrivaient pas à accéder à la page d'authentification.
<Location />
Options FollowSymlinks
#Premiere condition ( pour les users qui pourront s'authentifier avec le SSO)
AuthType GSSAPI
AuthName "Kerberos Authentication"
GssapiCredStore keytab:/etc/apache2/ssosos-ssi.HTTP.keytab
GssapiAllowedMech krb5
require valid-user
GssapiUseSessions On
Session on
SessionCookieName gssapi_session path=/;httponly;secure;
#Deuxieme condition ( pour les users qui ne pourront pas: veux qui ne sont pas dans le domaine )
#Order allow,deny
Allow from all
Satisfy any
</Location>
Explication:
Si l'utilisateur dispose d'un identifiant valide (qui appartient au domaine), alors on fait une authentification de type GSSAPI, sinon, on autorise quand même l’accès à la page d'authentification.
Offline
Pages: 1