Shibboleth SSO avec Discourse

Bonjour à tous,

J’ai enfin intégré mon site Discourse avec Shibboleth. C’était simple… une fois que j’ai compris :joy:.

  1. Installez Shibboleth sur un serveur web (qui n’a pas besoin d’être le même que votre serveur Discourse). Appelons-le shib.univ.edu.

  2. Créez un répertoire sur shib.univ.edu pour gérer l’authentification unique (SSO) de Discourse. Appelons-le discourse-sso.

  3. Protégez ce répertoire avec Shibboleth. Si vous utilisez Apache, cela signifie généralement ajouter quelque chose comme ceci dans discourse-sso/.htaccess :

     # En-tête Shibboleth
     AuthType Shibboleth
     ShibRequireSession On
     ShibApplicationId default
     ShibExportAssertion On
    
     require shib-user ~ ^.+@univ\.edu$
    
  4. Utilisez une bibliothèque qui effectue les opérations de signature décrites dans le guide officiel de SSO de Discourse. J’utilise cviebrock/discourse-php. Créez un fichier sso.php ici en suivant les instructions d’utilisation.

  5. Vos username et email seront dans la variable d’environnement eppn. Donc, si vous avez suivi les instructions d’utilisation décrites dans cviebrock/discourse-php (lien ci-dessus), vous devriez simplement définir :

     // Insérez ici votre code d'authentification utilisateur ...
     // Obligatoire et doit être cohérent avec votre application
     $userEmail = getenv( 'eppn' );
    
     // Obligatoire et doit être unique à votre application
     $userId = strstr( $userEmail, '@', true );
    
  6. Activez le SSO selon le guide officiel de SSO de Discourse. Faites pointer votre sso url vers https://shib.univ.edu/discourse-sso/sso.php et tout devrait fonctionner.

GI

7 « J'aime »