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 2017-07-13 16:50:38

adrien56
Guest
Registered: 2017-07-13
Posts: 2

Authentification FusionInventory avec auth basic http

Bonjour,

J'essaie actuellement de paramétrer l’authentification d'un agent FusionInventory pour l'envoi d'inventaires sur notre serveur GLPI.
Je précise que je suis sur un parc de PC Windows avec l'agent en version 2.3.18, GLPI en 9.1.2 sur une Debian et FusionInventory Plugins en 9.1 +1.0.

J'ai fait plusieurs recherches, dont sur ce forum et j'ai trouvé quelques réponses. Cependant, l’authentification via auth basic d'apache reste un peu flou. Je trouve ça plutôt étonnant qu'il n'y ai pas de tutos ou procédures afin de comprendre le fonctionnement des paramètres user et password de l'agent et comment les paramétrer avec l'activation de l'auth basic sur le serveur. Je vous partage donc mes recherches et mes questions.

J'ai donc suivi ces tutos d'apache pour mettre en œuvre ce module :

https://httpd.apache.org/docs/2.4/howto/auth.html
https://httpd.apache.org/docs/2.4/fr/mod/core.html
https://httpd.apache.org/docs/2.4/fr/ho … ccess.html

Ensuite, sur la discussion ci-dessous vous donnez les différentes solutions pour sécuriser les échanges entre les agents et le serveur GLPI, je me suis donc porté vers l'authentification via auth basic d'apache.

http://forum.fusioninventory.org/viewtopic.php?id=2733

Mais comme l'indique le dernier message de cette discussion, je me suis vite heurté à une demande d'authentification d'apache dès que je me me connecte à GLPI, quand je veux protéger le répertoire /plugins/fusioninventory avec auth basic. J'ai essayé en utilisant les balises Directory, Location, Files, le fichier .htaccess. Tous me verrouille bien l’accès aux répertoires souhaités mais malheureusement m'affichent aussi un pop-up de demande d'authentification à chaque connexion à GLPI. Et en effet, en faisant un wireshark (capture de paquets) en me connectant à GLPI, je remarque que GLPI charge une page dans le répertoire /plugins/fusioninventory à chaque connexion. Donc le comportement est plutôt normal (ou pas ?), mais alors quel répertoire ou fichier doit-on protéger pour pouvoir authentifier les agents voulant remonter un inventaire ?

Je suis ensuite tombé sur cette réponse de ddurieux (mais qui date de 2012) sur la discussion ci-dessous :

http://forum.glpi-project.org/viewtopic.php?id=30924

"pose l'authbasic uniquement sur le fichier glpi/plugins/fusioninventory/front/communication.php"

Ce que j'ai fait, cependant quand je force l’inventaire d'un PC sans paramétrer d'authentification sur l'agent pour valider que l'agent est bien bloqué, l'inventaire remonte bien comme si la remontée d’inventaire aujourd’hui ne passe plus par ce .php. (Mon paramétrage est correcte puisque quand je rentre l'URL dans le navigateur, il me demande bien un mot de passe).

La question est plutôt simple après tout ce roman, quel répertoire ou fichier doit être protégé pour bien pouvoir authentifier l'envoi d'inventaire sans avoir de pop-up de demande authentification intempestifs en se connectant ou en naviguant sur GLPI ?

Configuration apache :

                <Directory /var/www/glpi>
                        DirectoryIndex index.php
                        Options FollowSymLinks MultiViews
                        AllowOverride all
                        Require all granted
                </Directory>

                <Directory "/var/www/glpi/plugins/fusioninventory/front">
                        <Files communication.php>
                                AuthType Basic
                                AuthName "Fusion-Inventory_Secure"
                                AuthBasicProvider file
                                AuthUserFile /etc/.htpasswd_Fusion-Inventory
                                Require valid-user
                        </Files>
                </Directory>

Last edited by adrien56 (2017-07-13 16:54:03)

Offline

#2 2017-07-14 08:59:52

ddurieux
Plugins Dev
From: Monsols, France
Registered: 2005-06-17
Posts: 7,520

Re: Authentification FusionInventory avec auth basic http

Faudrait pouvoir mettre le auth_basic sur les useragent, ça serait un peu mieux que sur le dossier (dossier partagé agent et utilisateur)

Offline

#3 2017-07-17 12:46:08

adrien56
Guest
Registered: 2017-07-13
Posts: 2

Re: Authentification FusionInventory avec auth basic http

Bonjour ddurieux,

Merci pour ta réponse rapide.
Je n'avais pas compris à quoi correspondait un useragent (agent FusionInventory ?).
Après quelques recherches, j'ai compris qu'il s'agit d'une variable http permettant de savoir entre autres quel navigateur web est utilisé par le client.

M'aidant des différentes sources ci-dessous :

https://httpd.apache.org/docs/2.4/fr/mo … _core.html
https://httpd.apache.org/docs/2.4/fr/howto/access.html
https://httpd.apache.org/docs/2.4/fr/expr.html
https://developer.mozilla.org/fr/docs/D … user_agent

J'ai réussi à bloquer le répertoire /plugins/fusioninventory pour les agents non authentifiés, sans qu'une authentification soit demandée par un navigateur à l'accès de GLPI.
Ça correspond surement à ce qu'a fait cfer sur la discussion ci-dessous :

http://forum.glpi-project.org/viewtopic.php?id=30924

Je partage ma configuration apache si d'autres personnes se posent la question :


                <Directory /var/www/glpi>
                        DirectoryIndex index.php
                        Options FollowSymLinks MultiViews
                        AllowOverride all
                        Require all granted
                </Directory>

                #AUTHENTIFICATION REQUISE POUR LES CLIENTS MAIS PAS POUR LES NAVIGATEURS

                <Directory /var/www/glpi/plugins/fusioninventory>
                        AuthType Basic
                        AuthName "Fusion-Inventory_Secure"
                        AuthBasicProvider file
                        AuthUserFile /etc/.htpasswd_Fusion-Inventory
                        Require expr %{HTTP_USER_AGENT} =~ /Firefox/
                        Require expr %{HTTP_USER_AGENT} =~ /Seamonkey/
                        Require expr %{HTTP_USER_AGENT} =~ /Chrome/
                        Require expr %{HTTP_USER_AGENT} =~ /Chromium/
                        Require expr %{HTTP_USER_AGENT} =~ /Safari/
                        Require expr %{HTTP_USER_AGENT} =~ /Opera/
                        Require expr %{HTTP_USER_AGENT} =~ /OPR/
                        Require expr %{HTTP_USER_AGENT} =~ /MSIE/
                        Require expr %{HTTP_USER_AGENT} =~ /Trident/
                        Require expr %{HTTP_USER_AGENT} =~ /Edge/
                        Require valid-user
                </Directory>

On peut retrouver les en-têtes utilisés par les navigateurs dans les logs access d'apache ("MSIE" n'a plus l’air d'être utilisé sur IE11).

Cette solution à l'air pour le moment de fonctionner mais ça ne me parait pas super propre et je suis mitigé sur la protection quelle apporte.

De plus, je ne suis pas sûr que cette solution est ce que tu entendais par ta proposition de mettre le auth_basic sur les useragent ?
Qu'en penses-tu ?

Last edited by adrien56 (2017-07-17 12:48:13)

Offline

Board footer

Powered by FluxBB