LDAP : Visibilité automatique par site

  • chris-042
  • Auteur du sujet
  • Nouveau membre
  • Nouveau membre
Plus d'informations
il y a 3 ans 3 mois #3721 par chris-042
LDAP : Visibilité automatique par site a été créé par chris-042
Bonjour à tous,
J'essaye de paramétrer GRR pour généraliser l'outil sur notre site, qui comporte beaucoup de sites géographiques.
Pas de problème pour créer les sites et les administrateurs de sites, en revanche, lorsqu'un utilisateur se connecte, je cherche à lui donner la possibilité de poser des réservations uniquement sur les ressources du site auquel il est affecté dans l'annuaire.
Dans l'annuaire, un attribut indique son site de rattachement, j'ai utilisé le même code pour créer les sites. Est-ce possible ?

Sinon, peut être par un script de synchronisation de l'annuaire avec la base de données ?

Merci :)

Connexion ou Créer un compte pour participer à la conversation.

  • Yan
  • Developpeur GRR
  • Developpeur GRR
Plus d'informations
il y a 3 ans 3 mois #3722 par Yan
Réponse de Yan sur le sujet LDAP : Visibilité automatique par site
Bonjour,
il n'y a pas actuellement de fonction de rattachement des utilisateurs à un site, à la différence des notions de domaine restreint (historique) ou de ressource restreinte (introduite en 3.4.2).
Cependant je suis disposé à étudier votre demande à temps perdu. Il faudrait que vous précisiez le nom de l'attribut LDAP, certainement multivalué, qui détermine l'accès à un site.
Je pense que cette nouvelle fonctionnalité ne devrait pas être trop complexe à développer :-)
À suivre.
Cordialement,
YN

Connexion ou Créer un compte pour participer à la conversation.

  • chris-042
  • Auteur du sujet
  • Nouveau membre
  • Nouveau membre
Plus d'informations
il y a 3 ans 3 mois #3725 par chris-042
Réponse de chris-042 sur le sujet LDAP : Visibilité automatique par site
Bonjour,
Très bonne nouvelle.
Il s'agit en effet d'un attribut LDAP multivalué, chez nous il s'appelle "rne" mais je pense que son nom doit être paramétrable dans un fichier de configuration par exemple.

Merci.

Bien cordialement,

Connexion ou Créer un compte pour participer à la conversation.

  • Yan
  • Developpeur GRR
  • Developpeur GRR
Plus d'informations
il y a 3 ans 3 mois #3731 par Yan
Réponse de Yan sur le sujet LDAP : Visibilité automatique par site
Bonjour,
je pense qu'il faudrait commencer par s'assurer que cet attribut est bien récupéré par GRR.
A priori, c'est la fonction grr_getinfo_ldap, ligne 1179 du fichier session.inc.php, qui procède à la lecture des attributs LDAP.
Je propose d'insérer après la ligne 1199 le code
Code:
print_r($info); die();
ce qui va casser la connexion à GRR, mais devrait afficher à l'écran les informations recueillies depuis l'annuaire pour un utilisateur donné.
N'hésitez pas à anonymiser les données personnelles dans votre réponse, ce qui importe est le format des données.
Cordialement,
YN

Connexion ou Créer un compte pour participer à la conversation.

  • chris-042
  • Auteur du sujet
  • Nouveau membre
  • Nouveau membre
Plus d'informations
il y a 3 ans 2 mois #3741 par chris-042
Réponse de chris-042 sur le sujet LDAP : Visibilité automatique par site
Bonjour,
Je viens d'ajouter les lignes dans le fichier de code, mais rien n'apparait à l'écran, pourtant le module LDAP et SSO sont bien activés et la connexion fonctionne.

Connexion ou Créer un compte pour participer à la conversation.

  • chris-042
  • Auteur du sujet
  • Nouveau membre
  • Nouveau membre
Plus d'informations
il y a 3 ans 2 mois #3742 par chris-042
Réponse de chris-042 sur le sujet LDAP : Visibilité automatique par site
J'ai désactivé le SSO pour que cela fonctionne, en revanche, seuls les attributs configurés dans GRR s'affichent :
Array
(
[count] => 1
[0] => Array
(
[sn] => Array
(
[count] => 1
[0] => usertest2
)

[0] => sn
[givenname] => Array
(
[count] => 1
[0] => usertest2
)

[1] => givenname
[mail] => Array
(
[count] => 1
[0] => usertest2@xxxx.fr
)

[2] => mail
[count] => 3
[dn] => uid=usertest2,ouxxx, c=fr
)

)
Ceci dit, comme on utilise le SSO, les données sont aussi dans les entêtes HTTP, de ce fait, on peut aussi ajouter ce paramétrage dans la partie SSO / Prise en compte d'une authentification HTTP à l'endroit ou l'on indique les données pour le Nom / Prénom / Email .

Je ne sais pas lequel est le plus facile, pour nous c'est pareil, les données utiles du LDAP sont injectées dans les entêtes HTTP.

Connexion ou Créer un compte pour participer à la conversation.

  • Yan
  • Developpeur GRR
  • Developpeur GRR
Plus d'informations
il y a 3 ans 2 mois #3757 par Yan
Réponse de Yan sur le sujet LDAP : Visibilité automatique par site
Bonjour,
tout d'abord je vous prie de m'excuser pour cette réponse tardive.
Je préférerais qu'on reste dans le cadre LDAP.
Je vois dans le code de session.inc.php, ligne 1192 :
Code:
array(Settings::get("ldap_champ_nom"),Settings::get("ldap_champ_prenom"),Settings::get("ldap_champ_email"))
et le résultat que vous donnez ne semble pas contenir de mail valable. Est-ce voulu ?
Pour récupérer votre champ 'rne', peut-être suffit-il d'insérer ce nom de champ dans le tableau, soit
Code:
array(Settings::get("ldap_champ_nom"),Settings::get("ldap_champ_prenom"),Settings::get("ldap_champ_email"),'rne')
Pouvez-vous tester ?
Cordialement,
YN

Connexion ou Créer un compte pour participer à la conversation.

  • chris-042
  • Auteur du sujet
  • Nouveau membre
  • Nouveau membre
Plus d'informations
il y a 3 ans 2 mois #3817 par chris-042
Réponse de chris-042 sur le sujet LDAP : Visibilité automatique par site
Bonjour,

Cela fonctionne, l'attribut RNE est bien récupéré avec la bonne valeur, il y a bien aussi l'adresse mail :

Array
(
[count] => 1
[0] => Array
(
[sn] => Array
(
[count] => 1
[0] => usertest1
)

[0] => sn
[givenname] => Array
(
[count] => 1
[0] => usertest1
)

[1] => givenname
[mail] => Array
(
[count] => 1
[0] => UserTest1@xxxx.fr
)

[2] => mail
[rne] => Array
(
[count] => 1
[0] => 0540044E
)

[3] => rne
[count] => 4
[dn] => uid=usertest1,ou=xxxx, c=fr
)

)

Connexion ou Créer un compte pour participer à la conversation.

  • Yan
  • Developpeur GRR
  • Developpeur GRR
Plus d'informations
il y a 3 ans 2 mois #3818 par Yan
Réponse de Yan sur le sujet LDAP : Visibilité automatique par site
Bien.
Il faudrait regarder dans GRR du côté des attributs LDAP supplémentaires pour voir si cette fonctionnalité permet de récupérer le rne.
Et aussi comment "accrocher" cet attribut à l'utilisateur.
À suivre...
Cordialement,
YN

Connexion ou Créer un compte pour participer à la conversation.

  • Yan
  • Developpeur GRR
  • Developpeur GRR
Plus d'informations
il y a 3 ans 2 mois #3832 par Yan
Réponse de Yan sur le sujet LDAP : Visibilité automatique par site
Bonjour,
il faudra vraisemblablement compléter, mais dans un premier temps, je propose les modifications suivantes, outre celle de la ligne 1192 :
supprimer l'affichage et l'arrêt du script (modifications suivant la ligne 1199),
ajouter après ligne 1206 :
Code:
$l_rne = (isset($val['rne'][0])) ? $val['rne'][0] : '';
après ligne 1213 :
Code:
$l_rne = utf8_decode($l_rne);
puis remplacer la ligne 1216 par :
Code:
return array($l_nom, $l_prenom, $l_email, $l_rne);
En adaptant éventuellement le numéro de ligne pour que ceci garde un sens.
La connexion devrait être rétablie.
Ensuite, voir comment récupérer l'information 'rne'. Voyez-vous une stratégie ?
Cordialement,
YN

Connexion ou Créer un compte pour participer à la conversation.

Modérateurs: Yan