Preciso de ajuda ao implementar SSO para ambiente de desenvolvimento

Configurei o Discourse na minha máquina local e queria configurar o login SSO. Posso redirecionar o usuário quando ele clica em login, mas quando sou redirecionado, continuo recebendo erros. Ativei o log também e ele diz:
Nonce is incorrect, was generated in a different browser session, or has expired (Nonce incorreto, foi gerado em uma sessão de navegador diferente ou expirou)
Abaixo está o arquivo Python que estou usando: Discourse-setup/main.py at main · kamleshjoshi8102/Discourse-setup · GitHub

Por favor, observe também que, no meu caso, ele está rodando na porta 4201, então redirecionei para a porta 4201 no login.

Este é o método que está acionando o erro:

  def nonce_valid?
    if SiteSetting.discourse_connect_csrf_protection
      nonce && @secure_session[nonce_key].present?
    else
      nonce && Discourse.cache.read(nonce_key).present?
    end
  end

Ele verifica se o nonce foi gerado pelo Discourse para a mesma sessão daquela que redireciona o usuário de volta para o Discourse.
Você pode tentar definir a configuração do site discourse_connect_csrf_protection como false. Seu valor padrão é true. É uma configuração de site oculta, portanto, só pode ser desabilitada a partir do console Rails.

Quando habilitada, a configuração discourse_connect_csrf_protection garante que todo o processo de autenticação SSO ocorra por meio de redirecionamentos do navegador. Se você estiver iniciando o processo de autenticação fazendo uma solicitação em segundo plano para session/sso, precisará desabilitá-la. Mais detalhes aqui: DiscourseConnect flow no longer functions - #5 by david.

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.