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-01-12 02:50:45

lauhub
Member
Registered: 2017-01-12
Posts: 3

Comportement étrange de règle avec expression régulière sur champ LDAP

Bonjour,

J'ai défini une règle avec une expression régulière pour récupérer depuis le champ (LDAP) Department Number à la fois un type d'utilisateur (Administrateur Système) et le pays de cet utilisateur (Règles d'affectation d'habilitations à un utilisateur)

Voici la valeur que je teste pour ce champ (les guillemets ne sont pas saisis dans l'annuaire) : "/informatique/adminsysteme/France"

Pour mon exemle, j'ai une Entité Racine nommée "MaSociété" et une sous-entité nommée "MaSociété > France"

J'ai défini une règle comme suit:

  • Critère : (LDAP)Department Number    expression rationnelle vérifie    #.*/adminsysteme/(.*)$#

  • Actions : Entité depuis TAG       Assigner valeur depuis expression rationnelle       #0
                           Profils     Assigner  Technicien

Quand je clique sur Tester depuis la règle j'obtiens ceci:

Critère                                 Condition                             Motif                            Validation
(LDAP)Department Number         expression rationnelle vérifie    #.*/adminsysteme/(.*)$#       Oui

Validation                                                    Oui
Résultat de l'expression rationnelle                 Clé    Valeur
                                                                  0    France

Par contre, quand je vais dans le menu récapitulant toutes les Règles (Affectation d'habilitations à un utilisateur) (glpi/front/ruleright.php sans paramètre), et que je clique sur le bouton "Tester le moteur de règles" (en n'activant que la règle concernée), j'obtiens ceci:


Détail du résultat
Admin_System_Pays                           Oui

Résultat de la règle
Validation                                          Non

Cela me semble totalement illogique: la valeur testée est la même mais le résultat de validation est différent.

Ceci ne fonctionne pas non plus si j'active mes autres règles (dont la règle Root restée à sa valeur par défaut) : l'Entité affectée devrait être France : les deux affectations d'entité sont positionnées sur MaSociété

De plus, si j'inverse la condition de la règle en mettant le critère suivant:
(LDAP)Department Number         expression rationnelle ne vérifie pas           #.*/adminsysteme/(.*)$#

J'obtiens ceci quand je fais "Tester le moteur de règles":

Détail du résultat
Admin_System_Pays                           Non

Résultat de la règle
Validation                                          Oui

J'ai le même comportement étrange si je ne définis qu'une action d'affectation d'entité

Qu'est-ce que je rate ? Quelle est la logique sous-jacente à ceci ? Est-ce un comportement normal ?

Que faudrait-il que j'utilise comme critère/action/configuration pour faire fonctionner cette règle ?

--
Version de GLPI: 9.1.1
OS: Debian Jessie 8.6
Navigateur Mozilla Firefox 50.1.0

Offline

#2 2017-01-16 14:53:09

yllen
GLPI-DEV
From: Sillery (51)
Registered: 2008-01-14
Posts: 15,273

Re: Comportement étrange de règle avec expression régulière sur champ LDAP

lauhub wrote:

Bonjour,

Par contre, quand je vais dans le menu récapitulant toutes les Règles (Affectation d'habilitations à un utilisateur) (glpi/front/ruleright.php sans paramètre), et que je clique sur le bouton "Tester le moteur de règles" (en n'activant que la règle concernée), j'obtiens ceci:


Détail du résultat
Admin_System_Pays                           Oui

Résultat de la règle
Validation                                          Non

Cela signifie que votre règhle est correcte mais que la validation de la totalité n'est règles n'est pas faite vu que vos autres règles sont dé-activées

Pour faire fonctionner cette règle il faut que le tag de l'entité soit strictement identique à la valeur retournée par la regex


CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6  - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)

Offline

#3 2017-01-17 15:08:33

lauhub
Member
Registered: 2017-01-12
Posts: 3

Re: Comportement étrange de règle avec expression régulière sur champ LDAP

Bonjour,

Merci pour votre réponse.

En effet, si j'active la règle Root, Validation passe à Oui dans le résultat de la règle. Ceci dit, c'est uniquement la désactivation de la règle Root qui entraîne Validation à Non (d'autres règles peuvent être désactivées, Validation reste à Oui si Root est activée).

Si j'active Root, j'obtient ceci:

                          Résultat de la règle
Validation                                Oui
                          Affectation d'entités
Entité     MaSociétéDémo
Entité     MaSociétéDémo

Il me semblerait logique ici que l'une des deux Affectations d'entités ait pour valeur "France"

Car mon vrai problème est que si je me connecte avec avec le profil concerné, ni l'affectation d'entité ni le profil ne marchent. Donc je soupçonne que cela vient d'ici.

Dans mon LDAP, j'ai une entrée (uid=jquelqun) qui a les valeurs affectées suivantes (les guillemets ne sont pas pris en compte) :

  • departmentNumber=/informatique/adminsysteme/France

  • mail=jean.quelqun@masocietedemo.com

J'ai bien une entité dont l'orthographe exacte est "France" (sous-entité de MaSociété).

Cependant, quand je me connecte avec jquelqun, il reste sur un profil Self-Service : la règle n'est pas appliquée

Trois hypothèses :

  • soit l'expression régulière n'est pas correctement interprétée

  • soit GLPI ne prend pas en compte departmentNumber depuis mon LDAP,

  • soit la valeur retournée par #0 n'est pas prise en compte

J'élimine a priori la première puisque le test de ma règle me montre qu'elle fonctionne (voir mon premier post).

Comment puis-je tester d'où vient ce problème  (quel fichier journal dois-je regarder, comment activer des messages de débuggage plus verbeux) ?

Offline

#4 2017-01-17 15:33:48

lauhub
Member
Registered: 2017-01-12
Posts: 3

Re: Comportement étrange de règle avec expression régulière sur champ LDAP

yllen wrote:

Pour faire fonctionner cette règle il faut que le tag de l'entité soit strictement identique à la valeur retournée par la regex

En relisant attentivement cette dernière phrase, la lumière s'est faite !

J'ai cherché dans la configuration des Entités et en effet, c'est le champ TAG qui n'était pas positionné.

En allant dans la configuration de l'entité France, onglet Informations Avancées, j'ai modifié le champ suivant:

Information de l'outil d'inventaire (TAG) représentant l'entité

Et après un nouvel essai de connexion, ça marche enfin ..!

Donc en résumé, pour qu'une règle de ce type marche:

  • Il faut bien définir la REGEX

  • Il faut bien définir la valeur dans l'annuaire

  • Il faut définir un TAG sur chacune des entités concernées

Validité de cette solution ?

Tout ceci marche, mais ne me semblait pas logique: en effet TAG est une information associée à OCSNG

J'ai donc modifié l'action associée à ma règle: au lieu de "Entité depuis TAG", j'ai utilisé "Entité depuis information LDAP" pour la positionner à partir de la valeur #0 de mon expression rationnelle.

Puis, dans le champs Information de l'annuaire LDAP représentant l'entité (Entité - France > Informations Avancées) j'ai mis la valeur : France

Et ça marche aussi au moment de la connexion.

Questions

Cependant, je me suis encore posé quelques questions: y a-t-il moyen de faire plus simple (par exemple en utilisant l'action "Entité depuis le nom complet", mais dans ce cas que vaut ce nom complet: "France" ou "MaSociété > France") ?

Y a-t-il un article dans la documentation qui traite de ceci ? (celui-ci semble pertinent http://glpi-project.org/DOC/FR/glpi/adm … right.html)

Y a-t-il d'autres ressources plus complètes sur ce sujet ?

Histoire que je sache où lire la prochaine fois que j'ai un problème du même genre ;-)

Offline

#5 2017-01-23 17:54:54

yllen
GLPI-DEV
From: Sillery (51)
Registered: 2008-01-14
Posts: 15,273

Re: Comportement étrange de règle avec expression régulière sur champ LDAP

Le champ TAG de l'entité peut effectivement être utilisé par OCSNG mais pas seulement.
Concernant la documentation officielle, elle se trouve ici : https://forge.glpi-project.org/projects/glpidoc/files (pour les règles utilisateur, c'est toujours comme en 0.85)


CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6  - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)

Offline

Board footer

Powered by FluxBB