Bonjour à tous,
J’ai enfin intégré mon site Discourse avec Shibboleth. C’était simple… une fois que j’ai compris
.
-
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. -
Créez un répertoire sur
shib.univ.edupour gérer l’authentification unique (SSO) de Discourse. Appelons-lediscourse-sso. -
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$ -
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.phpici en suivant les instructions d’utilisation. -
Vos
usernameetemailseront dans la variable d’environnementeppn. 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 ); -
Activez le SSO selon le guide officiel de SSO de Discourse. Faites pointer votre
sso urlvershttps://shib.univ.edu/discourse-sso/sso.phpet tout devrait fonctionner.
GI