Shibboleth SSO con Discourse

Hola a todos,

Por fin logré integrar mi sitio de Discourse con Shibboleth. Fue sencillo… una vez que lo entendí :joy:.

  1. Haz que Shibboleth funcione en un servidor web (no necesita ser el mismo que tu servidor de Discourse). Llamémoslo shib.univ.edu.

  2. Crea un directorio en shib.univ.edu para gestionar el SSO de Discourse. Llamémoslo discourse-sso.

  3. 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$
    
  4. 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.php aquí copiando las instrucciones de uso.

  5. Tu username y email estarán en la variable de entorno eppn. 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 );
    
  6. Habilita el SSO siguiendo la guía oficial de SSO de Discourse. Configura tu sso url para que apunte a https://shib.univ.edu/discourse-sso/sso.php y ya deberías estar listo.

Saludos,
GI

7 Me gusta