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 2024-07-16 15:14:37

Nox1669
Member
Registered: 2017-05-10
Posts: 10

SSO en GSSAPI

Bonjour,

Je ne parviens pas à faire fonctionner le SSO avec le module GSSAPI, alors que j'ai testé à peu près toutes les configurations que j'ai pu lire ici et là.
Ma config :
- Debian 12.5
- GLPI 10.0.14
- Modules installés : libapache2-mod-auth-gssapi, krb5-user, krb5-kdc
Ma configuration AD est OK, mes utlisateurs remontent bien dans GLPI, et hors config SSO, je peux me connecter sans problème avec un compte du domaine.
Pour le SSO, j'ai fait :
- Création d'un compte de service
- Création d'un SPN sur ce compte de service (setspn -a ....)
- Création du fichier keytab.
- Droits sur le keytab pour apache
- Tous les tests kinit, kvno sont OK quand je les lance depuis le serveur GLPI

Mon fichier /etc/krb5.conf :

[libdefaults]

       kdc_timesync = 1
       ccache_type = 4
       forwardable = true
       proxiable = true

        default_realm = DOMAINE.COM

        default_keytab_name = FILE:/etc/apache2/glpisso.keytab


[realms]
        DOMAINE.COM = {
                kdc = IP_DC
                admin_server = IP_DC
                default_domain = domaine.com
        }


[domain_realm]
        .domaine.com = DOMAINE.COM
        domaine.com = DOMAINE.COM

Ci-dessous mon vhost :

<VirtualHost *:443>

        ServerName fqdn_mon_serveur
        DocumentRoot /var/www/glpi/public

        LogLevel debug

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        SSLEngine on
        SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
        SSLProtocol all -SSLv2
        SSLCertificateFile /etc/ssl/certs/mon_cert.crt
        SSLCertificateKeyFile /etc/ssl/private/mon_cert_key.key


        <Directory /var/www/glpi/public>

                Options Indexes FollowSymLinks
                AllowOverride All
                RewriteEngine On

        # Ensure authorization headers are passed to PHP.
        # Some Apache configurations may filter them and break usage of API, CalDAV, ...
               RewriteCond %{HTTP:Authorization} ^(.+)$
               RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

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

                AuthType GSSAPI
                AuthName "mon_fqdn"
#               GssapiImpersonate on
#               GssapiAllowedMech krb5
                GssapiCredStore keytab:/etc/apache2/glpisso.keytab
#               GSSapiImpersonate On
#               GssapiBasicAuth off
#               GssapiSSLonly on
#               GssapiLocalName on
#               GssapiNegotiateOnce on

                require valid-user
                Order Deny,Allow
                Satisfy any
       </Directory>
</VirtualHost>

Avec cette config, j'ai ça dans le fichier error.log d'apache :

 [ssl:info] [pid 18913] [client 192.168.214.13:61921] AH01964: Connection to child 1 established (server MON_SERVEUR_URL:443)
 [ssl:debug] [pid 18913] ssl_engine_kernel.c(2395): [client 192.168.214.13:61921] AH02043: SSL virtual host for servername MON_SERVEUR_URL found
[socache_shmcb:debug] [pid 18913] mod_socache_shmcb.c(545): AH00835: socache_shmcb_retrieve (0x2a -> subcache 10)
 [socache_shmcb:debug] [pid 18913] mod_socache_shmcb.c(896): AH00849: match at idx=0, data=0
 [socache_shmcb:debug] [pid 18913] mod_socache_shmcb.c(556): AH00836: leaving socache_shmcb_retrieve successfully
 [core:debug] [pid 18913] protocol.c(2460): [client 192.168.214.13:61921] AH03155: select protocol from , choices=h2,http/1.1 for server MON_SERVEUR_URL
 [ssl:debug] [pid 18913] ssl_engine_kernel.c(2254): [client 192.168.214.13:61921] AH02041: Protocol: TLSv1.3, Cipher: TLS_AES_128_GCM_SHA256 (128/128 bits)
 [socache_shmcb:debug] [pid 18913] mod_socache_shmcb.c(508): AH00831: socache_shmcb_store (0x12 -> subcache 18)
 [socache_shmcb:debug] [pid 18913] mod_socache_shmcb.c(860): AH00847: insert happened at idx=0, data=(0:32)
 [socache_shmcb:debug] [pid 18913] mod_socache_shmcb.c(863): AH00848: finished insert, subcache: idx_pos/idx_used=0/1, data_pos/data_used=0/213
 [socache_shmcb:debug] [pid 18913] mod_socache_shmcb.c(530): AH00834: leaving socache_shmcb_store successfully
 [ssl:debug] [pid 18913] ssl_engine_kernel.c(415): [client 192.168.214.13:61921] AH02034: Initial (No.1) HTTPS request received for child 1 (server MON_SERVEUR_URL:443)
 [auth_gssapi:debug] [pid 18913] mod_auth_gssapi.c(838): [client 192.168.214.13:61921] GSSapiImpersonate not On, skipping impersonation.
 [auth_gssapi:debug] [pid 18913] mod_auth_gssapi.c(838): [client 192.168.214.13:61921] GSSapiImpersonate not On, skipping impersonation.
 [deflate:debug] [pid 18913] mod_deflate.c(909): [client 192.168.214.13:61921] AH01384: Zlib: Compressed 10053 to 2991 : URL /index.php
 [ssl:debug] [pid 18913] ssl_engine_kernel.c(415): [client 192.168.214.13:61921] AH02034: Subsequent (No.2) HTTPS request received for child 1 (server MON_SERVEUR_URL:443), referer: https://MON_SERVEUR_URL/
 [auth_gssapi:debug] [pid 18913] mod_auth_gssapi.c(838): [client 192.168.214.13:61921] GSSapiImpersonate not On, skipping impersonation., referer: https://MON_SERVEUR_URL/
 [auth_gssapi:debug] [pid 18913] mod_auth_gssapi.c(838): [client 192.168.214.13:61921] GSSapiImpersonate not On, skipping impersonation., referer: https://MON_SERVEUR_URL/
[ssl:debug] [pid 18913] ssl_engine_io.c(1146): [client 192.168.214.13:61921] AH02001: Connection closed to child 1 with standard shutdown (server MON_SERVEUR_URL:443)

Si je rajoute GSSapiImpersonate On dans mon vhost, cela n'a pas l'air de changer grand chose
Les paramètres commentés sont ceux que j'ai testé dans plusieurs combinaisons, mais à chaque fois, j'ai la fenêtre de login de GLPI qui se présente, ou alors une erreur 401.
Je sais que les 4 paramètres AuthType, AuthName et Gssapicredstore et require valid-user peuvent être suffisants car ceux-ci fonctionnent avec un serveur GLPI que j'ai ailleurs.
J'aurais besoin d'aide pour être aiguiller, ou débuguer.

Last edited by Nox1669 (2024-07-16 16:33:08)

Offline

Board footer

Powered by FluxBB