Olá a todos,
Finalmente consegui integrar meu site Discourse com o Shibboleth. Foi simples… depois que eu descobri como fazer
.
-
Configure o Shibboleth em um servidor web (não precisa ser o mesmo servidor do Discourse). Vamos chamá-lo de
shib.univ.edu. -
Crie um diretório em
shib.univ.edupara fazer o SSO do Discourse. Vamos chamá-lo dediscourse-sso. -
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$ -
Obtenha uma biblioteca que realize a assinatura descrita no guia oficial de SSO do Discourse. Eu uso cviebrock/discourse-php. Crie o arquivo
sso.phpaqui, copiando-o das instruções de uso. -
Seu
usernameeemailestarão na variável de ambienteeppn. 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 ); -
Ative o SSO conforme o guia oficial de SSO do Discourse. Faça com que sua
sso urlaponte parahttps://shib.univ.edu/discourse-sso/sso.phpe você estará pronto.
GI