Achten Sie auf eine doppelte URL-Codierung des SSO-Payloads

Wir hatten in letzter Zeit eine Menge Probleme mit unserer SSO-Implementierung und haben nach viel Debug-Arbeit die Ursache gefunden.

Zu unseren Problemen gehörten:

  • Neue Benutzer konnten sich nicht im Forum anmelden
  • Bestehende Benutzer erhielten beim ersten Anmelden eine 7 am Ende ihres Benutzernamens
  • sso_sync lehnte Benutzernamenänderungen ab

Es stellte sich heraus, dass dies alles durch eine doppelte URL-Codierung unseres SSO-Payloads verursacht wurde. Wir haben ihn codiert, in die URL mit der Signatur eingefügt und dies erneut codiert. Da base64-codierte Zeichenfolgen = enthalten können, wurde dies TWICE in %253D statt wie vorgesehen in %3D kodiert. Ich habe keine Ahnung, warum dies Discourse nur manchmal beeinträchtigt hat, aber hoffentlich kann dies jemandem helfen, der auf dasselbe Problem stößt.

4 „Gefällt mir“