GLPI: le guide SSO

GLPI: le guide SSO

Tu veux mettre en place de la SSO Kerberos sur GLPI avec GssAPI Apache 2? Bienvenue! 😊

Installation du client Kerberos et du module Apache gssapi. Configuration du client kerberos.

apt install libapache2-mod-auth-gssapi krb5-user
nano /etc/krb5.conf
[libdefaults]
default_realm = TONDOMAINE.COM
dns_lookup_realm = false
dns_lookup_kdc = false

[realms]
FRR.COM = {
        kdc = IP SERVER AD
        kdc = IP SERVER AD 2
        admin_server = IP SERVER AD
        admin_server = IP SERVER AD 2
}

[domain_realm]
.tondomaine.com = TONDOMAINE.COM
tondomaine.com = TONDOMAINE.COM

CrĂ©ation d’un compte de service GLPi  dans AD utilisĂ© pour mapper le service http Glpi et le prĂ©senter Ă  Kerberos. Utiliser un mot de passe fixe sans expiration, cocher la prise en charge AES 256.

Sur le contrĂŽleur de domaine, lancer l’invite de commande en tant qu’administrateur afin de crĂ©er le fichier keytab

ktpass -princ HTTP/[email protected] -mapuser [email protected] -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out C:\tmp\glpi.keytab

Envoyer le fichier dans le rĂ©pertoire apache et le sĂ©curiser pour l’utilisateur apache

chown www-data:www-data glpi.keytab
chmod 640 glpi.keytab

Configurer le vHOST Apache pour GLPI

<VirtualHost *:443>

        ServerName tonserveur.tondomaine.com
        DocumentRoot /var/www/glpi/public
        SSLEngine on
        SSLCertificateFile     /etc/ssl/certs/toncert.pem
        SSLCertificateKeyFile /etc/ssl/private/tapv.key
        SSLCACertificateFile  /etc/ssl/certs/tonac.pem

        ErrorLog     /var/log/apache2/glpi-error.log


        <Directory /var/www/glpi/public>
        AuthType GSSAPI
        AuthName "GLPI SSO"
        GssapiCredStore keytab:/etc/apache2/glpi.keytab
        Require valid-user

        #autorise l'agent Ă  bypass SSO
        <If "%{HTTP_USER_AGENT} =~ /GLPI-Agent_v/">
        Require all granted
        </If>

        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]
        Options +FollowSymlinks
        </Directory>

        <FilesMatch \.php$>
        SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost/"
        </FilesMatch>

    </VirtualHost>

Enfin dans GLPI / ACCUEIL / CONFIGURATION / AUTHENTIFICATION /AUTRES:Champs de stockage de l'identifiant dans la requĂȘte HTTP choisir REMOTE_USER