SSO + Ldap -> Echec de connexion à GRR. Cause inconnue.

  • seb
  • Topic Author
  • New Member
  • New Member
More
6 years 10 months ago #1028 by seb
Bonjour,

Je viens vers vous suite à une migration GRR qu'on n'arrive pas à finaliser.

Tout s'est bien passé jusqu'à la connexion via SSO et LDAP, qui renvoie l'erreur suivante : Echec de connexion à GRR. Cause inconnue.

Par ailleurs, dans les logs d'apache, il y a l'erreur php suivante :

[Wed Jul 04 17:24:26.647892 2018] [:error] [pid 27687] [client xx.xx.xx.xx.:54650] PHP Notice: Undefined variable: user_dn in /var/www/grr/include/session.inc.php on line 477

Le serveur est une debian stretch, avec php7 et apache2.

Merci pour votre aide !

Seb

Please Log in or Create an account to join the conversation.

  • Yan
  • Developpeur GRR
  • Developpeur GRR
More
6 years 10 months ago #1029 by Yan
Bonjour,
quand vous évoquez une migration, la connexion SSO + LDAP était-elle active auparavant ?
Cordialement,
YN

Please Log in or Create an account to join the conversation.

  • seb
  • Topic Author
  • New Member
  • New Member
More
6 years 10 months ago - 6 years 10 months ago #1034 by seb
Bonjour,
Merci pour votre réponse rapide.
Oui, la connexion LDAP SSO était active auparavant. Je tiens à préciser que nous sommes passés d'une version 1.9.7 à une version 3.4.0.

Finalement, nous avons réussi à résoudre notre pb.
Il s'agissait de la "Restriction des connexions via l'iP" qui bizarrement était renseigné "NON" alors qu'il attendait une valeur numérique, voire vide dans notre cas puisque nous ne faisons pas de filtrage IP (peut être un problème lié à la migration ??)

A côté de ça, nous avons repéré un autre bug :
Lorsque nous faisons une connexion SSO et que l'utilisateur est déjà existant, il semblerait que GRR n'arrive pas à récupérer le nom/prénom de l'utilisateur et écrase ceux déjà enregistrés avec un message d'erreur. Lorsqu'il s'agit d'un nouvel utilisateur, il n'y a aucun problème, l'utilisateur est bien ajouté avec sa description complète.

Apache renvoie l'erreur suivante :
PHP Notice: Undefined variable: user_dn in /var/www/grr/include/session.inc.php on line 477, referer: https://......./grr/week_all.php?area=5&id_site=1

Nous avons donc contourné le problème en commentant la ligne qui fait la requête en cas d'utilisateur existant (ligne ~486):

/*if (grr_sql_command($sql2) < 0)
fatal_error(0, get_vocab("msg_login_created_error") . grr_sql_error());*/

J'ajouterais à ça, que nous avons un peu galéré lors de la migration à cause de problèmes d'accents et caractères spéciaux mal gérés. Certains étaient en ASCII, d'autres en HTML....

Voici une petite commande qui nous a permis de corriger l'essentiel. A appliquer directement sur le dump avant copie dans la nouvelle base.

cat dump.sql | awk '{gsub(/&nbsp;/," ");gsub(/&#39;/," ");gsub(/&agrave;/,"à");gsub(/&egrave;/,"è");gsub(/&eacute;/,"é");gsub(/%E9/,"é");gsub(/%E8/,"è");gsub(/%E0/,"à");gsub(/%EF/,"ï");gsub(/%3F/,"?");gsub(/%22/," ");gsub(/%2B/,"+");gsub(/%2F/," ");gsub(/%26/,"&");gsub(/%27/," ");gsub(/%20/," ");gsub(/%2C/," ");gsub(/%25/," ")}1' > dump_clean.sql
Last edit: 6 years 10 months ago by seb.

Please Log in or Create an account to join the conversation.

  • Yan
  • Developpeur GRR
  • Developpeur GRR
More
6 years 10 months ago #1035 by Yan
Bonjour,
merci pour votre réponse.
Il y a effectivement des correctifs à faire et j'aurai besoin de votre aide pour faire des tests puisque je ne suis pas en configuration SSO+LDAP.
Cordialement,
YN

Please Log in or Create an account to join the conversation.

  • seb
  • Topic Author
  • New Member
  • New Member
More
6 years 10 months ago #1036 by seb
N'hésitez pas à me contacter si besoin pour des tests via l'adresse email de mon compte.

Cordialement,
S.

Please Log in or Create an account to join the conversation.

  • Yan
  • Developpeur GRR
  • Developpeur GRR
More
6 years 10 months ago #1038 by Yan
Bonjour,

seb wrote: Finalement, nous avons réussi à résoudre notre pb.
Il s'agissait de la "Restriction des connexions via l'iP" qui bizarrement était renseigné "NON" alors qu'il attendait une valeur numérique, voire vide dans notre cas puisque nous ne faisons pas de filtrage IP (peut être un problème lié à la migration ??)

Effectivement, je viens de refaire le test : en installation fraiche, pas d'erreur, le champ IP est bien vide, par contre, lors d'une restauration, il faut prendre garde à effacer le 'no' du champ IP.
La modification de la fonction de filtrage est à la source de ce problème.
J'étudie la suite de vos remarques.
Cordialement,
YN

Please Log in or Create an account to join the conversation.

  • Yan
  • Developpeur GRR
  • Developpeur GRR
More
6 years 10 months ago #1039 by Yan
Deuxième point :

seb wrote: A côté de ça, nous avons repéré un autre bug :
Lorsque nous faisons une connexion SSO et que l'utilisateur est déjà existant, il semblerait que GRR n'arrive pas à récupérer le nom/prénom de l'utilisateur et écrase ceux déjà enregistrés avec un message d'erreur. Lorsqu'il s'agit d'un nouvel utilisateur, il n'y a aucun problème, l'utilisateur est bien ajouté avec sa description complète.

Apache renvoie l'erreur suivante :
PHP Notice: Undefined variable: user_dn in /var/www/grr/include/session.inc.php on line 477, referer: https://......./grr/week_all.php?area=5&id_site=1

Nous avons donc contourné le problème en commentant la ligne qui fait la requête en cas d'utilisateur existant (ligne ~486):

/*if (grr_sql_command($sql2) < 0)
fatal_error(0, get_vocab("msg_login_created_error") . grr_sql_error());*/

Si j'ai bien compris, vos utilisateurs sont en connexion SSO avec interrogation d'un annuaire LDAP. La variable user_dn devrait être définie en ligne 207 lors de l'interrogation de l'annuaire.
Pour essayer d'y voir plus clair, pouvez-vous insérer un affichage du résultat lu, vers la ligne 215 de session.inc.php :
Code:
// Recuperer les donnees de l'utilisateur $info = @ldap_get_entries($ds, $result); if (is_array($info)) { print_r($info);
et partager vos résultats ?
Cordialement,
YN

Please Log in or Create an account to join the conversation.

Moderators: Yan