Shibboleth SSO mit Discourse

Hallo zusammen,

ich habe meine Discourse-Seite schließlich mit Shibboleth integriert. Es war einfach… sobald ich es herausgefunden hatte :joy:.

  1. Richten Sie Shibboleth auf einem Webserver ein (nicht unbedingt demselben wie Ihr Discourse-Server). Nennen wir ihn shib.univ.edu.

  2. Erstellen Sie auf shib.univ.edu ein Verzeichnis für das Discourse SSO. Nennen wir es discourse-sso.

  3. Schützen Sie dieses Verzeichnis mit Shibboleth. Wenn Sie Apache verwenden, bedeutet dies normalerweise, dass Sie etwas Ähnliches in discourse-sso/.htaccess einfügen:

     # Shibboleth-Header
     AuthType Shibboleth
     ShibRequireSession On
     ShibApplicationId default
     ShibExportAssertion On
    
     require shib-user ~ ^.+@univ\.edu$
    
  4. 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.

  5. Ihr username und email befinden sich in der Umgebungsvariable eppn. 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 );
    
  6. Aktivieren Sie das SSO gemäß der offiziellen Discourse SSO-Anleitung. Stellen Sie sicher, dass Ihre sso url auf https://shib.univ.edu/discourse-sso/sso.php zeigt, und dann sollte alles funktionieren.

Viele Grüße

7 „Gefällt mir“