Unendliche SSO-Weiterleitung in Safari

Bei mehreren Discourse-Instanzen, bei denen Login erforderlich aktiviert ist und SSO verwendet wird, treten unter Safari auf iOS unendliche Weiterleitungen beim Einloggen auf. So läuft es ab:

  1. Der Benutzer ist weder in Discourse noch auf der SSO-Hauptseite eingeloggt.
  2. Der Benutzer navigiert zur Discourse-Instanz.
  3. Discourse leitet zur SSO-Seite weiter.
  4. Die SSO-Seite fordert zur Eingabe der Anmeldedaten auf. Der Benutzer loggt sich ein.
  5. Der Benutzer steckt in einer Schleife aus Weiterleitungen zwischen der SSO-Hauptseite und Discourse fest, bis Safari aufgibt.
  6. Wenn der Benutzer danach manuell erneut zur Discourse-Seite navigiert, ist er eingeloggt.

Ich kann dieses Verhalten mit Chrome auf dem Desktop nicht reproduzieren.
Während sich ein Client in der Weiterleitungsschleife befindet, werden mehrere Einträge wie Started SSO process und User was logged on generiert. Das sieht so aus, als wäre der SSO-Prozess erfolgreich, aber somehow leitet Discourse den Benutzer nach Abschluss von SSO nicht zur Startseite, sondern erneut zu einem SSO-Login weiter.

Dies betrifft auch ältere Instanzen, bei denen SSO zuvor einwandfrei funktioniert hat. Daher glaube ich nicht, dass es sich um ein Konfigurationsproblem von Discourse handelt.

Hat jemand eine Idee, was hier schiefgehen könnte?

4 „Gefällt mir“

Any ideas on this @sam?

I have seen this on sites that have the setting same site cookies set to Strict, if it is already on Lax recommend attempting to disable and see if it works around the Safari bug.

6 „Gefällt mir“

Maybe the new Safari Tech Preview from today will fix it:

Fixed Same-Site Lax cookies to be sent with cross-site redirect from a client-initiated load (r241918)

7 „Gefällt mir“

You are :100:% correct. It was on Lax, the default. Changing it to Disabled fixed the issue immediately. (I assume this is a defense-in-depth thing, on top of your usual CSRF protections, so disabling it is not overly terrible for security?)

Let’s hope for the best!

Thank you for your help!


I rate you :star2::star2::star2::star2::star2::mage::mage: (five stars plus wizarding level two)!

7 „Gefällt mir“

:man_facepalming: I’ve spent a very long time figuring out a similar issue was caused by this samsite=lax behaviour:

This fixes my issue - at least on macOS Mojave - so I assume it fixes it on iOS too. Thanks!

I’d also like to know people’s opinions on this.

What with this being the Mozilla Discourse and all, we don’t have a huge amount of traffic from Safari, so don’t want to make ourselves vulnerable to CSRF attacks for something which will benefit a very small proportion of our users.

6 „Gefällt mir“