Configure o SAML do OneLogin para o Discourse

Aqui está como configurar o Discourse para permitir login e registro com o SAML do OneLogin.

Configurar o OneLogin

Criar conta no OneLogin

Acesse OneLogin e crie uma conta.

Criar novo app: SAML Test Connector (IdP w/attr)

Do seu painel, crie um novo aplicativo.

Pesquise por SAML Test Connector (IdP w/attr)

Configurar aplicativo

Vamos supor que a URL da sua instância do Discourse seja http://discourse.example.com. Vamos configurá-la.

Mude para a aba Configuration (Configuração) e preencha estes detalhes:

  • Audience (Público): http://discourse.example.com
  • Recipient (Destinatário): http://discourse.example.com/auth/saml/callback
  • ACS (Consumer) URL Validator: ^http:\\/\\/discourse\\.example\\.com\\/auth\\/saml\\/callback\\/$
  • ACS (Consumer) URL: http://discourse.example.com/auth/saml/callback

Copiar informações do certificado e endpoint SAML 2.0

Mude para a aba SSO.

Clique no link View Details (Ver Detalhes) sob o certificado e copie a SHA fingerprint (impressão digital SHA) e o X.509 Certificate. Anote-os; eles serão usados ao configurar o aplicativo do Discourse.

Copie e anote a URL do SAML 2.0 Endpoint (HTTP).

Configurar o Discourse

Instalar o plugin discourse-saml

Siga este guia para instalar o plugin discourse-saml.

Configurar o plugin discourse-saml

O plugin pode ser configurado de duas formas:

Opção 1: Configurações do Site (recomendado)

Após instalar e reconstruir, acesse o painel de administração do Discourse e navegue até Admin → Plugins → SAML. Ative a configuração saml_enabled e configure o seguinte:

  • saml_target_url: a SAML 2.0 Endpoint URL copiada da aba SSO do OneLogin
  • saml_cert_fingerprint: a SHA fingerprint copiada da aba SSO do OneLogin → seção Certificate
  • saml_cert: o X.509 Certificate copiado da aba SSO do OneLogin → seção Certificate
  • saml_log_auth: ative para depuração

Opção 2: Variáveis de Ambiente

Alternativamente, você pode configurar o plugin via variáveis de ambiente em app.yml. Note que, quando as variáveis de ambiente são usadas, todas as configurações de site SAML ficam ocultas na interface administrativa.

Edite app.yml

cd /var/discourse
vim containers/app.yml

e adicione estas variáveis na seção env:

DISCOURSE_SAML_TITLE: "Example SAML"
DISCOURSE_SAML_TARGET_URL: {SAML 2.0 Endpoint URL}
DISCOURSE_SAML_LOG_AUTH: "true"
DISCOURSE_SAML_CERT_FINGERPRINT: {SHA fingerprint}
DISCOURSE_SAML_CERT: {X.509 Certificate sem quebras de linha}
  • substitua {SAML 2.0 Endpoint URL} pela SAML 2.0 Endpoint URL copiada da aba SSO do OneLogin
  • substitua {SHA fingerprint} pela SHA fingerprint copiada da aba SSO do OneLogin → seção Certificate
  • substitua {X.509 Certificate sem quebras de linha} pelo X.509 Certificate copiado da aba SSO do OneLogin → seção Certificate; note que não deve haver quebras de linha e remova os marcadores de início e fim

Reconstruir aplicativo

Para que as alterações tenham efeito, reconstrua o aplicativo.

cd /var/discourse
./launcher rebuild app

Pronto! :tada:

Agora você deve conseguir fazer login usando o SAML do OneLogin.

6 curtidas