You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2019-06-19 11:39:11

dylsous
Member
Registered: 2017-03-14
Posts: 20

Authentification SSO avec Kerberos

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

#2 2019-06-19 12:09:31

lanainejulie
Member
Registered: 2014-09-15
Posts: 41

Re: Authentification SSO avec Kerberos

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

#3 2019-06-19 12:21:50

dylsous
Member
Registered: 2017-03-14
Posts: 20

Re: Authentification SSO avec Kerberos

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

#4 2019-06-19 14:17:49

lanainejulie
Member
Registered: 2014-09-15
Posts: 41

Re: Authentification SSO avec Kerberos

dylsous wrote:

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

#5 2019-06-19 15:28:05

dylsous
Member
Registered: 2017-03-14
Posts: 20

Re: Authentification SSO avec Kerberos

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

#6 2019-06-19 15:30:25

dylsous
Member
Registered: 2017-03-14
Posts: 20

Re: Authentification SSO avec Kerberos

dylsous wrote:

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

#7 2022-07-29 20:19:38

kadjo2a
Member
Registered: 2022-06-16
Posts: 3

Re: Authentification SSO avec Kerberos

Bonsoir

Auriez vous une procédure pour l'intégration du SSO s'il vous plaît ?

Merci d'avance

Offline

#8 2022-10-19 11:42:52

yatar
Member
Registered: 2014-02-18
Posts: 64

Re: Authentification SSO avec Kerberos

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

#9 2022-12-30 15:14:07

Chico008
Member
Registered: 2022-12-14
Posts: 383

Re: Authentification SSO avec Kerberos

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 smile

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

#10 2023-01-04 13:28:04

AdeEng
Member
Registered: 2017-10-31
Posts: 17

Re: Authentification SSO avec Kerberos

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 ?

Chico008 wrote:

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 smile

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)


Glpi 10

Offline

#11 2023-01-11 18:00:12

nladet
Member
Registered: 2019-05-06
Posts: 30

Re: Authentification SSO avec Kerberos

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

#12 2024-01-24 11:10:23

mlk
Member
Registered: 2023-12-19
Posts: 7

Re: Authentification SSO avec Kerberos

Bonjour nladet,

Avez-vous trouvé une solution à votre problème ?

Merci

Offline

#13 2024-01-24 11:50:47

Chico008
Member
Registered: 2022-12-14
Posts: 383

Re: Authentification SSO avec Kerberos

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

#14 2024-02-21 14:50:46

mlk
Member
Registered: 2023-12-19
Posts: 7

Re: Authentification SSO avec Kerberos

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

Board footer

Powered by FluxBB