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
7am Ende ihres Benutzernamens sso_synclehnte 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.