Drupal SSO erzeugt inkorrekte Benutzersitzungen

Hallo,
wir nutzen SSO von Drupal, und dabei tritt ein unbeabsichtigtes Verhalten auf: Alle Benutzer sehen unseren Drupal-Server zusätzlich zu ihrer aktuellen Sitzung als angemeldet an. Dies verursacht in unserer Community große Verunsicherung und Verwirrung, da sie ein anderes Gerät in der Liste sehen, das nicht ihnen gehört.

Kann diese Funktion deaktiviert werden? Oder besser noch: Können wir bestimmte IP-Adressen ausschließen, damit unser Server nicht in der Liste der kürzlich verwendeten Geräte erscheint?

Die Verwendung eines externen SSO-Anbieters führt nicht dazu, dass er in dieser Liste aufgeführt wird.

Was Sie sehen, könnte ein Artefakt von etwas anderem sein, wie z. B. das Erstellen von API-Schlüsseln für Benutzer usw.

Ich habe dieses Problem bereits zuvor gesehen, wenn eine Drupal-Seite als SSO-Anbieter für Discourse dient. Bei anderen SSO-Anbietern habe ich keine ähnlichen Probleme festgestellt. Verwenden Sie ein Drupal-Modul für SSO? Wenn ja, können Sie uns bitte mitteilen, wo wir es finden können?

Sie können den Abschnitt „Zuletzt verwendete Geräte

Wir verwenden das Contrib-Modul „Discourse Forum Integration“ https://www.drupal.org/project/discourse

Danke für den Tipp. Wir haben dies vorübergehend per CSS ausgeblendet. Es wäre jedoch schön zu wissen, ob es konfigurierbar ist, um unseren Server nur aus der Liste auszublenden, damit Benutzer weiterhin ihre kürzlich verwendeten Geräte sehen können.

Ich würde empfehlen, den Drupal-Entwickler zu kontaktieren – das Modul wurde zuletzt 2015 aktualisiert und unterstützt laut Angabe die Discourse-Version 1.2.0.beta5 (die von uns im Januar 2015 veröffentlicht wurde). Zwar freue ich mich, dass es noch funktioniert, aber es ist nicht verwunderlich, dass es einige kleinere Probleme gibt.

Es ist auch erwähnenswert, dass das oben verlinkte Drupal-Modul nur für Drupal 7 verfügbar ist, das im November 2021 seinen Lebenszyklus beendet. (Es ist nicht morgen, aber bald genug.)

Ja, danke, uns ist das bewusst (und wir sind nicht gerade begeistert, da unsere Seite erst kürzlich online gegangen ist :disappointed_relieved: )

Ich habe mir das Drupal Discourse-Modul kurz angesehen. Mir ist nicht ganz klar, was das Problem verursacht, aber aus irgendeinem Grund werden beim SSO-Login User-Agent und Client-IP auf die Werte des Drupal-Servers gesetzt, statt auf die IP und den User-Agent des Benutzers. Dies könnte mit der Funktionsweise der Methode drupal_goto zusammenhängen.

Etwas, das mir im Modul aufgefallen ist: Es bietet Funktionen zur Anzeige von Discourse-Inhalten auf Drupal. Dazu werden API-Anfragen an Discourse gestellt, bei denen die API-Anmeldedaten in der Abfragezeichenfolge enthalten sind. Diese Art der API-Authentifizierung wurde von Discourse veraltet. Irgendwann in naher Zukunft werden derartige Anfragen nicht mehr funktionieren. Falls Sie das Modul verwenden, um Discourse-Inhalte auf Ihrer Drupal-Site anzuzeigen, sollten Sie sich dies genauer ansehen.

Das Modul wurde zuletzt 2015 aktualisiert. Es gibt ein Drupal Discourse SSO-Modul, das kürzlich aktualisiert wurde: https://www.drupal.org/project/discourse_sso. Ich denke, es bietet jedoch nur SSO-Funktionalität. Es scheint keinen Code zu enthalten, der Discourse-Inhalte auf eine Drupal-Site hinzufügt.

Danke für die zusätzlichen Informationen, Simon. Wir machen tatsächlich genau das: Unser Blog-Kommentarbereich nutzt ein Discourse-Thema, damit Nutzer diskutieren können, und der Inhalt dieses Themas wird dann auch im Blogartikel zurück in Drupal angezeigt.

Ist dies der richtige Ort, um mehr über die API-Authentifizierungs-Abschaltung zu erfahren? Discourse REST API Documentation

Nochmals vielen Dank!

Ja, die am Anfang dieses Themas gezeigte POST-Anfrage enthält die benötigten Informationen. Um das Drupal-Discourse-Modul so anzupassen, dass es eine header-basierte Authentifizierung verwendet, wäre nur eine kleine Änderung im Code erforderlich.

Unter der Annahme, dass deine Discourse-Website aktuell ist, gibt es wahrscheinlich eine Warnung bezüglich der Verwendung veralteter Authentifizierungsmethoden für API-Anfragen auf deinem Discourse-Admin-Dashboard.