Besoin d'aide pour implémenter le SSO en environnement de développement

J’ai configuré Discourse sur ma machine locale et je voulais configurer la connexion SSO. Je peux rediriger l’utilisateur lorsqu’il clique sur connexion, mais lorsque je suis redirigé, je reçois continuellement des erreurs. J’ai activé la journalisation et elle indique :
Nonce is incorrect, was generated in a different browser session, or has expired
Voici le fichier Python que j’utilise : Discourse-setup/main.py at main · kamleshjoshi8102/Discourse-setup · GitHub

Veuillez également noter que dans mon cas, il s’exécute sur le port 4201, j’ai donc redirigé vers le port 4201 lors de la connexion.

Voici la méthode qui déclenche l’erreur :

  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

Elle vérifie que le nonce a été généré par Discourse pour la même session que celle qui redirige l’utilisateur vers Discourse.
Vous pourriez essayer de définir le paramètre du site discourse_connect_csrf_protection sur false. Sa valeur par défaut est true. C’est un paramètre de site caché, il ne peut donc être désactivé que depuis la console Rails.

Lorsqu’il est activé, le paramètre discourse_connect_csrf_protection garantit que l’ensemble du processus d’authentification SSO se déroule par des redirections de navigateur. Si vous démarrez le processus d’authentification en effectuant une requête d’arrière-plan vers session/sso, vous devrez le désactiver. Plus de détails ici : DiscourseConnect flow no longer functions - #5 by david.

1 « J'aime »

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