Hallo zusammen,
ich habe meine Discourse-Seite schließlich mit Shibboleth integriert. Es war einfach… sobald ich es herausgefunden hatte
.
-
Richten Sie Shibboleth auf einem Webserver ein (nicht unbedingt demselben wie Ihr Discourse-Server). Nennen wir ihn
shib.univ.edu. -
Erstellen Sie auf
shib.univ.eduein Verzeichnis für das Discourse SSO. Nennen wir esdiscourse-sso. -
Schützen Sie dieses Verzeichnis mit Shibboleth. Wenn Sie Apache verwenden, bedeutet dies normalerweise, dass Sie etwas Ähnliches in
discourse-sso/.htaccesseinfügen:# Shibboleth-Header AuthType Shibboleth ShibRequireSession On ShibApplicationId default ShibExportAssertion On require shib-user ~ ^.+@univ\.edu$ -
Beschaffen Sie sich eine Bibliothek, die die in der [offiziellen Discourse SSO-Anleitung] beschriebene Signaturarbeit übernimmt. Ich verwende cviebrock/discourse-php. Erstellen Sie hier
sso.php, indem Sie die Anweisungen zur Verwendung kopieren. -
Ihr
usernameundemailbefinden sich in der Umgebungsvariableeppn. Wenn Sie also die oben beschriebenen Verwendungsanweisungen von cviebrock/discourse-php befolgt haben, sollten Sie einfach Folgendes festlegen:// Fügen Sie hier Ihren Benutzerauthentifizierungscode ein ... // Erforderlich und muss mit Ihrer Anwendung konsistent sein $userEmail = getenv( 'eppn' ); // Erforderlich und muss für Ihre Anwendung eindeutig sein $userId = strstr( $userEmail, '@', true ); -
Aktivieren Sie das SSO gemäß der offiziellen Discourse SSO-Anleitung. Stellen Sie sicher, dass Ihre
sso urlaufhttps://shib.univ.edu/discourse-sso/sso.phpzeigt, und dann sollte alles funktionieren.
Viele Grüße