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.