Hola a todos,
Por fin logré integrar mi sitio de Discourse con Shibboleth. Fue sencillo… una vez que lo entendí
.
-
Haz que Shibboleth funcione en un servidor web (no necesita ser el mismo que tu servidor de Discourse). Llamémoslo
shib.univ.edu. -
Crea un directorio en
shib.univ.edupara gestionar el SSO de Discourse. Llamémoslodiscourse-sso. -
Protege este directorio usando Shibboleth. Si estás usando Apache, generalmente significa agregar algo como esto en
discourse-sso/.htaccess:# Encabezado de Shibboleth AuthType Shibboleth ShibRequireSession On ShibApplicationId default ShibExportAssertion On require shib-user ~ ^.+@univ\.edu$ -
Consigue una biblioteca que realice el trabajo de firma descrito en la guía oficial de SSO de Discourse. Yo uso cviebrock/discourse-php. Crea
sso.phpaquí copiando las instrucciones de uso. -
Tu
usernameyemailestarán en la variable de entornoeppn. Así que, si seguiste las instrucciones de uso descritas en cviebrock/discourse-php (enlace anterior), solo deberías configurar:// Inserta aquí tu código de autenticación de usuario... // Obligatorio y debe ser consistente con tu aplicación $userEmail = getenv( 'eppn' ); // Obligatorio y debe ser único para tu aplicación $userId = strstr( $userEmail, '@', true ); -
Habilita el SSO siguiendo la guía oficial de SSO de Discourse. Configura tu
sso urlpara que apunte ahttps://shib.univ.edu/discourse-sso/sso.phpy ya deberías estar listo.
Saludos,
GI