- Messages : 3
SSO + Ldap -> Echec de connexion à GRR. Cause inconnue.
- seb
- Auteur du sujet
- Nouveau membre
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
Connexion ou Créer un compte pour participer à la conversation.
- Yan
- Developpeur GRR
- Messages : 2115
quand vous évoquez une migration, la connexion SSO + LDAP était-elle active auparavant ?
Cordialement,
YN
Connexion ou Créer un compte pour participer à la conversation.
- seb
- Auteur du sujet
- Nouveau membre
- Messages : 3
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(/ /," ");gsub(/'/," ");gsub(/à/,"à");gsub(/è/,"è");gsub(/é/,"é");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
Connexion ou Créer un compte pour participer à la conversation.
- Yan
- Developpeur GRR
- Messages : 2115
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
Connexion ou Créer un compte pour participer à la conversation.
- seb
- Auteur du sujet
- Nouveau membre
- Messages : 3
Cordialement,
S.
Connexion ou Créer un compte pour participer à la conversation.
- Yan
- Developpeur GRR
- Messages : 2115
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.seb écrit: 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 ??)
La modification de la fonction de filtrage est à la source de ce problème.
J'étudie la suite de vos remarques.
Cordialement,
YN
Connexion ou Créer un compte pour participer à la conversation.
- Yan
- Developpeur GRR
- Messages : 2115
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.seb écrit: 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());*/
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 :
Cordialement,
YN
Connexion ou Créer un compte pour participer à la conversation.