Shibboleth SSO com Discourse

Olá a todos,

Finalmente consegui integrar meu site Discourse com o Shibboleth. Foi simples… depois que eu descobri como fazer :joy:.

  1. Configure o Shibboleth em um servidor web (não precisa ser o mesmo servidor do Discourse). Vamos chamá-lo de shib.univ.edu.

  2. Crie um diretório em shib.univ.edu para fazer o SSO do Discourse. Vamos chamá-lo de discourse-sso.

  3. Proteja este diretório usando o Shibboleth. Se você estiver usando o Apache, geralmente significa colocar algo assim em discourse-sso/.htaccess:

     # Cabeçalho do Shibboleth
     AuthType Shibboleth
     ShibRequireSession On
     ShibApplicationId default
     ShibExportAssertion On
    
     require shib-user ~ ^.+@univ\.edu$
    
  4. Obtenha uma biblioteca que realize a assinatura descrita no guia oficial de SSO do Discourse. Eu uso cviebrock/discourse-php. Crie o arquivo sso.php aqui, copiando-o das instruções de uso.

  5. Seu username e email estarão na variável de ambiente eppn. Então, se você seguiu as instruções de uso descritas no cviebrock/discourse-php (link acima), basta definir:

     // Insira seu código de autenticação de usuário aqui ...
     // Obrigatório e deve ser consistente com sua aplicação
     $userEmail = getenv( 'eppn' );
    
     // Obrigatório e deve ser exclusivo para sua aplicação
     $userId = strstr( $userEmail, '@', true );
    
  6. Ative o SSO conforme o guia oficial de SSO do Discourse. Faça com que sua sso url aponte para https://shib.univ.edu/discourse-sso/sso.php e você estará pronto.

GI

7 curtidas