SSO Shibboleth con Discourse

Ciao a tutti,

Ho finalmente integrato il mio sito Discourse con Shibboleth. È stato semplice, … una volta che l’ho capito :joy:.

  1. Fai funzionare Shibboleth su un server web (non deve necessariamente essere lo stesso del tuo server Discourse). Chiamiamolo shib.univ.edu.

  2. Crea una directory su shib.univ.edu per gestire l’SSO di Discourse. Chiamiamola discourse-sso.

  3. Proteggi questa directory utilizzando Shibboleth. Se stai usando Apache, di solito significa inserire qualcosa del genere in discourse-sso/.htaccess:

     # Intestazione Shibboleth
     AuthType Shibboleth
     ShibRequireSession On
     ShibApplicationId default
     ShibExportAssertion On
    
     require shib-user ~ ^.+@univ\.edu$
    
  4. Ottieni una libreria che esegua la firma descritta nella guida ufficiale SSO di Discourse. Io uso cviebrock/discourse-php. Crea sso.php qui, copiandolo dalle istruzioni per l’uso.

  5. Il tuo username e email saranno nella variabile d’ambiente eppn. Quindi, se hai seguito le istruzioni per l’uso descritte in cviebrock/discourse-php (link sopra), dovresti semplicemente impostare

     // Inserisci qui il tuo codice di autenticazione utente ...
     // Obbligatorio e deve essere coerente con la tua applicazione
     $userEmail = getenv( 'eppn' );
    
     // Obbligatorio e deve essere univoco per la tua applicazione
     $userId = strstr( $userEmail, '@', true );
    
  6. Abilita l’SSO dalla guida ufficiale SSO di Discourse. Fai puntare il tuo sso url a https://shib.univ.edu/discourse-sso/sso.php e dovresti essere a posto.

GI

7 Mi Piace