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 2022-06-17 10:18:04

Ghelpme
Member
Registered: 2018-10-19
Posts: 34

GLPI 10 - Debian 11 - SSO

Bonjour,

je cherche à configurer l'authentification SSO kerberos sur mon nouveau serveur DEBIAN 11 sur lequel j'ai installé GLPI 10.
Sur le vieux serveur encore en production (GLPI 0.90 sur DEBIAN 9), j'utilisai le paquet libapache2-mod-auth-kerb.
Mais ce paquet n'est pas dispo pour la distribution 11 (BullEyes) (https://www.debian-fr.org/t/upgrade-bul … sing/85219)

Quelqu'un aurait-il configurer le SSO kerberos pour GLPI sur une DEBIAN 11? Peut être en utilisant les paquets libapache2-mod-auth-gssapi ou libapache2-mod-authn-sasl?
Ou mis en place un autre SSO pour éviter que les utilisateurs n'est à s'identifier manuellement?


GLPI 10.0.5 sur Debian 11

Offline

#2 2022-07-07 09:03:24

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

Re: GLPI 10 - Debian 11 - SSO

Bonjour, je suis également dans le même bateau, nous avons été victimes d'une cyberattaque donc je dois refaire mon GLPI du début, et malheureusement, ma procédure pour le SSO, ne fonctionne pas avec la nouvelle version de Debian.

Je suis dégoûtée !

Je suis ta discussion au cas où quelqu'un pourrait nous aider ..


Glpi 10

Offline

#3 2022-09-01 15:57:14

Sico31
Member
Registered: 2018-09-24
Posts: 596

Re: GLPI 10 - Debian 11 - SSO

tout pareil, je viens de passer glpi sous linux en V10 et HTTPS et souhaiterai pouvoir utiliser le SSO, mais comme d'hab' la doc GLPI est très pauvre et pas à jour ! Quant à demander au support pour de la doc à jour  .... euh comment dire ?? ?  : LOL


Manger un castor, c'est sauver un arbre.
Quand on est mort, on ne sait pas qu'on est mort ; c'est pour les autres que c'est difficile. Quand on est con, c'est pareil !

Offline

#4 2022-10-20 18:22:01

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

Re: GLPI 10 - Debian 11 - SSO

https://wiki.geco-it.net/public:apache_kerberos_sso

par contre je voudrais faire un mix entre les users SSO et les classiques mais c'est assez complexe


Glpi 10.0.3

Offline

#5 2022-10-20 18:27:57

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

Re: GLPI 10 - Debian 11 - SSO

1 - Création compte spécifique sso sur AD nommé : HTTP/sos.pva.bzh et activation kerberos aes256 dans les options du compte
2 - En powershell sur l'ad

ktpass /princ HTTP/monsite@DOMAIN.LOCAL /mapuser mon_user_sso /crypto AES256-SHA1 /ptype KRB5_NT_PRINCIPAL /pass mon_pass_du_user_sso /out c:\krb.keytab

3 - sur le serveur linux, je copie le fichier krb.keytab dans /etc/apache2 et j'installe les paquets qu'il faut :

apt install libapache2-mod-auth-gssapi krb5-user

4 - Je modifie le fichier krb5.conf dans etc

[libdefaults]
  default_realm = DOMAIN.LOCAL
  default_tkt_enctypes = aes256-cts-hmac-sha1-96
  default_tgs_enctypes = aes256-cts-hmac-sha1-96
  permitted_enctypes = aes256-cts-hmac-sha1-96

  kdc_timesync = 1
  ccache_type = 4
  forwardable = false
  proxiable = false
  fcc-mit-ticketflags = false

[realms]
        # multiple KDCs ok (one `kdc = ...` definition per line)
        DOMAIN.LOCAL = {
                kdc = dc01.domain.local
                admin_server = dc01.domain.local
                default_domain = domain.local
        }

[domain_realm]
        .domain.local = DOMAIN.LOCAL
        domain.local = DOMAIN.LOCAL

5 - et on modifie le fichier de conf apache du site :

<Location />
AuthType GSSAPI
  AuthName "Kerberos Login"
  GssapiCredStore keytab:/etc/apache2/krb.keytab
  require valid-user
</location>

Glpi 10.0.3

Offline

#6 2022-10-20 18:36:32

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

Re: GLPI 10 - Debian 11 - SSO

j'avais modifié le fichier apache pour faire un mix au niveau de l'authentification mais le souci est que les cookies d'identification ne fonctionne pas en connexion normal

Session On
SessionCookieName type_auth path=/

<directory /var/www/html/>


<If "%{HTTP_COOKIE} =~ /type_auth=gss/">
AuthType GSSAPI
AuthName "Kerberos Login"
GssapiCredStore keytab:/etc/apache2/krb.keytab
Require valid-user
</If>

</directory>

<files index.php>
<If "%{QUERY_STRING} =~ /^noAUTO=1/">
Header add Set-Cookie "type_auth=html"
</if>
<If "%{QUERY_STRING} == ''">
AuthType GSSAPI
AuthName "Kerberos Login"
GssapiCredStore keytab:/etc/apache2/krb.keytab
GssapiNegotiateOnce On
Require valid-user
Header add Set-Cookie "type_auth=gss"
ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://glpi/index.php?noAUTO=1\"></html>"
</If>

<If "%{QUERY_STRING} =~ /^redirect=/">
AuthType GSSAPI
AuthName "Kerberos Login"
GssapiCredStore keytab:/etc/apache2/krb.keytab
GssapiNegotiateOnce On
Require valid-user
Header add Set-Cookie "type_auth=gss"
ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://glpi/index.php?noAUTO=1\"></html>"
</If>


</files>

<files index.html>
redirect https://glpi/index.php
</files>

Glpi 10.0.3

Offline

#7 2022-11-14 13:12:42

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

Re: GLPI 10 - Debian 11 - SSO

Bonjour et merci pour ce petit tuto.

Grace à cela je suis arrivé à faire fonctionner le SSO. Je suis aussi intéressé par le mix d'authentification. Vous y êtes arrivé ?

Offline

#8 2022-11-14 14:15:43

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

Re: GLPI 10 - Debian 11 - SSO

Non pas reussi galère, car mon serveur est hébérgé et pas en local.

Si c'est en local il est possible de faire un allow from comme ici : https://forum.glpi-project.org/viewtopi … 95#p363695


Glpi 10.0.3

Offline

#9 2022-11-15 18:40:15

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

Re: GLPI 10 - Debian 11 - SSO

Ok merci j'y suis arrivé en ajoutant dans la configuration

Order allow,deny
Alow from all
Satisty Any

Offline

#10 2022-12-29 14:12:52

sebelec
Member
Registered: 2006-03-24
Posts: 63

Re: GLPI 10 - Debian 11 - SSO

Bonjour Messieurs,

je tente de faire la même chose que vous. J'ai fait les modif de yatar mais lorsque je tente d'accéder à ma page glpi j'ai le prompt qui me demande mon login et mdp mais quand je lui donne j'ai accès refusé.

Est ce qu'il y a quelques part des logs qui peuvent me permettre de débuguer ?

Merci,

edit : j'avance un peu j'ai trouvé cette erreur dans apache2 :

GSS ERROR In Negotiate Auth: gss_accept_sec_context() failed: [An unsupported mechanism was requested (Unknown error)]

Last edited by sebelec (2022-12-29 14:31:50)


Le blog d'un informaticien en PME : http://www.lamarque.info/

Offline

#11 2023-01-12 13:10:06

Ghelpme
Member
Registered: 2018-10-19
Posts: 34

Re: GLPI 10 - Debian 11 - SSO

Bonjour,
En m'inspirant de ce tuto:
- https://wiki.geco-it.net/public:apache_kerberos_sso

J'ai pu mettre en place la configuration et le SSO sans que les utilisateurs aient besoin de se signer fonctionne!


GLPI 10.0.5 sur Debian 11

Offline

#12 2023-04-28 15:02:59

SFSU
Member
Registered: 2023-04-28
Posts: 2

Re: GLPI 10 - Debian 11 - SSO

De mon côté j'ai compilé les solutions trouvées par ci par là pour aboutir à un résultat qui me convient bien.
J'ai une instance servie par 2 vhosts,
- l'un est uniquement interne et active le SSO qui peut basculer en identification normale en cas d'erreur.
- l'autre peut être accédé depuis le web avec un reverse proxy, donc sans SSO.

Voici mon vhost sso :

<VirtualHost *:80>
    ServerName glpi-sso.example.com
    DocumentRoot /var/www/glpi/public


    # If you want to place GLPI in a subfolder of your site (e.g. your virtual host i>
    # you can use an Alias directive:
    # Alias "/glpi" "/var/www/glpi/public"
    <FilesMatch \.php$>
        SetHandler "proxy:unix:/var/run/php/php8.1-fpm.sock|fcgi://localhost/"
    </FilesMatch>
    <Directory /var/www/glpi/public>
        Options +FollowSymlinks +Indexes +Includes +MultiViews
        AllowOverride All
#       Require all granted
        RewriteEngine On

        # Redirect all requests to GLPI router, unless file exists.
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]

        # Authentification GSSAPI si l'argument noAUTO n'est pas présent, sinon fallback sur la page de connexion avec noAUTO
        <If "%{QUERY_STRING} !~ /^noAUTO=1/">
        <Limit GET>
          AuthType GSSAPI
          AuthName "Kerberos Login"
          GssapiCredStore keytab:/etc/apache2/krb.keytab
          require valid-user
          ErrorDocument 401 /index.php?noAUTO=1
        </Limit>
        </If>

    </Directory>


        SetEnv php_value "memory_limit = 64M"
        SetEnv php_value "file_uploads = on"
        SetEnv php_value "max_execution_time = 600"
        SetEnv php_value "session.auto_start = off"
        SetEnv php_value "session.use_trans_sid = 0"
        SetEnv php_value "session.cookie_httponly on"
</VirtualHost>

J'ai trouvé que le <Limit get > fait très simplement le job en se basant sur la valeur noAUTO utilisée par Glpi.
Le <FilesMatch> est là car j'utilise php-fpm, à supprimer si ce n'est pas le cas pour vous.
J'ai mis le vhost entier car ce n'est pas toujours intuitif où mettre ces blocs de règles.
Sinon j'ai suivi les consignes de @yatar et aussi @dylsous sur cet autre thread "Authentification SSO avec Kerberos" Merci à eux !

Petite note, pour activer l'authentification kerberos a256 d'un compte AD, c'est dans les propriétés du compte, onglet Compte et faut faire défiler la liste des cases à cocher wink


Glpi 10.0.7 Debian 11

Offline

#13 2023-05-12 14:37:30

SFSU
Member
Registered: 2023-04-28
Posts: 2

Re: GLPI 10 - Debian 11 - SSO

Après davantage de recherche, il semble que l'identification Kerberos en http signifie que les mots de passe circulent en clair.
Il est recommandé même en intranet d'utiliser la méthode HTTPS et de forcer le ssl sur gssapi. Ce qui donne dans le limit du vhost :

<VirtualHost *:443>
    SSLEngine   on
    SSLCertificateFile      /etc/ssl/certs/glpi.cer
    SSLCertificateKeyFile /etc/ssl/private/glpi.key
[...]

 <Limit GET>
          AuthType GSSAPI
          AuthName "EXEMPLE GLPI HTTPS"
          GssapiAcceptorName      HTTPS
          GssapiSSLonly           On
          GssapiCredStore keytab:/etc/apache2/krb-ssl.keytab
          # Use a cookie to keep the session, avoid reauthenticate user on each page
          # (facultative)
          GssapiUseSessions       On
          GssapiDelegCcacheDir    /run/apache2/clientcaches
          <IfModule mod_session.c>
            Session on
          </IfModule>
          <IfModule mod_session_cookie.c>
            SessionCookieName gssapi_session path=/;httponly;secure;
            GssapiSessionKey key:#Remplacer par clé auto-générée#
          </IfModule>

          require valid-user
          ErrorDocument 401 /index.php?noAUTO=1
</Limit>

J'ai aussi ajouté des méthodes recommandées de gestion de session et cookie gérées par le module gssapi, pour améliorer la performance de navigation. (Sinon ça réidentifie à chaque changement de page)
Il faut pour cela aussi activer les modules apache session et session-cookie.
Et générer une clé de cookie avec par exemple

echo $RANDOM | md5sum | head -c 32|base64

On aura pris soin préalablement de faire un keytab avec l'accepteur en HTTPS :

ktpass /princ HTTPS/glpi-sso.exemple.org@EXEMPLE.ORG /mapuser "Nom Complet Utilisateur LDAP" /crypto all /pass * /ptype KRB5_NT_PRINCIPAL /out c:\krb-ssl.keytab

Notez que le /pass * permet d'entrer le mot de passe dans un prompt, ce qui évite d'avoir un mot de passe de compte système qui traine dans l'historique wink

Après avoir fait un redirect de l'HTTP vers le HTTPS, je suis vraiment content du résultat !


Glpi 10.0.7 Debian 11

Offline

#14 2023-10-23 23:09:31

gohy
Member
Registered: 2022-11-10
Posts: 7

Re: GLPI 10 - Debian 11 - SSO

SFSU wrote:

Après davantage de recherche, il semble que l'identification Kerberos en http signifie que les mots de passe circulent en clair.
Il est recommandé même en intranet d'utiliser la méthode HTTPS et de forcer le ssl sur gssapi. Ce qui donne dans le limit du vhost :

<VirtualHost *:443>
    SSLEngine   on
    SSLCertificateFile      /etc/ssl/certs/glpi.cer
    SSLCertificateKeyFile /etc/ssl/private/glpi.key
[...]

 <Limit GET>
          AuthType GSSAPI
          AuthName "EXEMPLE GLPI HTTPS"
          GssapiAcceptorName      HTTPS
          GssapiSSLonly           On
          GssapiCredStore keytab:/etc/apache2/krb-ssl.keytab
          # Use a cookie to keep the session, avoid reauthenticate user on each page
          # (facultative)
          GssapiUseSessions       On
          GssapiDelegCcacheDir    /run/apache2/clientcaches
          <IfModule mod_session.c>
            Session on
          </IfModule>
          <IfModule mod_session_cookie.c>
            SessionCookieName gssapi_session path=/;httponly;secure;
            GssapiSessionKey key:#Remplacer par clé auto-générée#
          </IfModule>

          require valid-user
          ErrorDocument 401 /index.php?noAUTO=1
</Limit>

J'ai aussi ajouté des méthodes recommandées de gestion de session et cookie gérées par le module gssapi, pour améliorer la performance de navigation. (Sinon ça réidentifie à chaque changement de page)
Il faut pour cela aussi activer les modules apache session et session-cookie.
Et générer une clé de cookie avec par exemple

echo $RANDOM | md5sum | head -c 32|base64

On aura pris soin préalablement de faire un keytab avec l'accepteur en HTTPS :

ktpass /princ HTTPS/glpi-sso.exemple.org@EXEMPLE.ORG /mapuser "Nom Complet Utilisateur LDAP" /crypto all /pass * /ptype KRB5_NT_PRINCIPAL /out c:\krb-ssl.keytab

Notez que le /pass * permet d'entrer le mot de passe dans un prompt, ce qui évite d'avoir un mot de passe de compte système qui traine dans l'historique wink

Après avoir fait un redirect de l'HTTP vers le HTTPS, je suis vraiment content du résultat !



Bonsoir @SFSU,


Où dois-je mettre <Limit GET>
          AuthType GSSAPI
          AuthName "EXEMPLE GLPI HTTPS" ... dans le fichier apache svp ?

Dans la version Debian 11, je ne vois pas le module mod_session.c et mod_session_cookie.c. Comment faut-il l'installer ou l'activer svp ?

Offline

Board footer

Powered by FluxBB