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