Brauchen Sie Hilfe bei der Implementierung von SSO für die Entwicklungsumgebung

Ich habe Discourse auf meinem lokalen Rechner eingerichtet und wollte die SSO-Anmeldung einrichten. Ich kann den Benutzer umleiten, wenn er auf Anmelden klickt, aber wenn ich umgeleitet werde, erhalte ich ständig Fehler. Ich habe auch die Protokollierung aktiviert, und sie besagt:
Nonce ist falsch, wurde in einer anderen Browsersitzung generiert oder ist abgelaufen
Unten ist die Python-Datei, die ich verwende: Discourse-setup/main.py at main · kamleshjoshi8102/Discourse-setup · GitHub

Bitte beachten Sie auch, dass es in meinem Fall auf Port 4201 läuft, daher habe ich bei der Anmeldung zu Port 4201 umgeleitet.

Dies ist die Methode, die den Fehler auslöst:

  def nonce_valid?
    if SiteSetting.discourse_connect_csrf_protection
      nonce && @secure_session[nonce_key].present?
    else
      nonce && Discourse.cache.read(nonce_key).present?
    end
  end

Es wird überprüft, ob der Nonce von Discourse für dieselbe Sitzung generiert wurde wie diejenige, die den Benutzer zurück zu Discourse weiterleitet.
Sie könnten versuchen, die Site-Einstellung discourse_connect_csrf_protection auf false zu setzen. Ihr Standardwert ist true. Es ist eine versteckte Site-Einstellung, daher kann sie nur über die Rails-Konsole deaktiviert werden.

Wenn die Einstellung discourse_connect_csrf_protection aktiviert ist, stellt sie sicher, dass der gesamte SSO-Authentifizierungsprozess über Browser-Weiterleitungen erfolgt. Wenn Sie den Authentifizierungsprozess starten, indem Sie eine Hintergrundanfrage an session/sso stellen, müssen Sie ihn deaktivieren. Weitere Details hier: DiscourseConnect flow no longer functions - #5 by david.

1 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.