Attention au double encodage URL de la charge SSO

Nous avons rencontré énormément de problèmes avec notre mise en œuvre SSO récemment et, après beaucoup de débogage, nous avons trouvé la cause.

Certains de nos problèmes comprenaient :

  • L’impossibilité pour les nouveaux utilisateurs de se connecter aux forums
  • L’ajout du chiffre 7 à la fin du nom d’utilisateur des utilisateurs existants lors de leur première connexion
  • Le rejet des modifications de nom d’utilisateur par sso_sync

Il s’avère que tout cela était dû au double encodage URL de notre charge utile SSO. Nous l’encodions, la placions dans l’URL avec la signature, puis l’encodions à nouveau. Comme les chaînes encodées en base64 peuvent contenir le caractère =, celui-ci a été encodé DEUX FOIS en %253D au lieu de %3D comme il aurait dû l’être. Je ne sais pas pourquoi cela n’a cassé Discourse que parfois, mais j’espère que si quelqu’un d’autre rencontre ce problème, cela pourra l’aider.

4 « J'aime »