Página de destino para login SAML

Em versões anteriores, uma página de aterrissagem era exibida, na qual o botão “login” aparecia. Clicar neste botão mostrava a página de login SAML.

Pessoalmente, gostei muito desse comportamento. Com a versão atual 2.4.2, isso não é mais possível, pois a página de login SAML é exibida imediatamente.

É configurável?

Não entendi. Você quer dizer que exibimos um modal com um único botão ‘Login com SAML’?

Não.
Em uma versão anterior (acho que era a 2.3.6), era assim:

Após clicar em “Anmelden”, a janela de login SAML aparecia.

Se eu ativar “logins locais”, a página inicial com o botão de login aparece novamente, mas eu não quero ter login local e, portanto, preciso desativá-lo.

Alguém pode me ajudar? Talvez @eviltrout?

Eu certamente não mudei isso de propósito. Se você pudesse nos ajudar a rastrear quando isso mudou, seria útil, pois poderíamos analisar o contexto.

É possível que tenha mudado por motivos de segurança.

Esta foi uma melhoria solicitada há muito tempo para fazer o omniauth se comportar como um SSO real, quando há apenas um método de login via omniauth.

Como posso ajudar?

Uma dica: se você ativar o “login local”, a “Página inicial junto com o botão de login” será exibida.

Se você realmente quiser a página de confirmação, pode vincular o usuário a /login (em vez da página inicial). Isso não acionará o login automaticamente.

Mas note que isso não é realmente suportado; é apenas uma peculiaridade da implementação e pode mudar a qualquer momento.

O novo comportamento é melhor e consistente com o login SSO. Se for necessária uma mensagem antes do login, ela pode ser implementada no Provedor de Identidade.

Ah, bom saber.
Conheço 2 motivos:

  • exibir uma página inicial muito agradável com algumas informações básicas em vez daquela janela de login “chata”
  • “segurança” (sei, não é realmente um grande obstáculo). Scripts de hacking baratos na URL principal (sem a página inicial) falhariam, esperamos, pois é necessário clicar no botão de login primeiro.

É possível configurar esse comportamento?

Você vai precisar contratar um desenvolvedor aqui para criar um plugin que altere isso. Até agora, esta é a primeira reclamação que ouvi sobre o novo sistema em meses.

Sou desenvolvedor :slight_smile: (veja minhas alterações em discourse_saml)

Você aceitaria um PR que adiciona uma opção de configuração (padrão: novo comportamento)?

O redirecionamento automático não deve introduzir nenhuma vulnerabilidade de segurança. Se você estiver ciente de uma exploração, por favor, nos avise através do nosso programa de divulgação: discourse/docs/SECURITY.md at main · discourse/discourse · GitHub

Acho que não queremos adicionar mais ruído às configurações até termos mais usuários solicitando essa mudança.

Você pode substituir isso em um plugin corrigindo este método:

Então, acho que você gostaria de simplificar a função até chegar a:

def redirect_to_login
  dont_cache_page
  cookies[:destination_url] = destination_url
  redirect_to path("/login")
end

Obrigado. Muito apreciado!
Por falar nisso: Você está fazendo um ótimo trabalho com o Discourse.