Le plugin OIDC est soudainement cassé, échoue silencieusement pour les nouveaux utilisateurs

Nous avons une instance Discourse en cours d’exécution qui a cessé de connecter les utilisateurs qui n’ont pas encore de compte et nous ne comprenons pas pourquoi ! Cela a commencé il y a quelques semaines après l’installation du plugin Discourse AI et le redémarrage de l’instance. Cela n’a été porté à mon attention qu’après des plaintes de clients ces derniers jours. Nous avons habituellement beaucoup de nouvelles inscriptions chaque jour.

La configuration

  • Instance Discourse auto-hébergée via le docker officiel
  • https://community.enginedj.com
  • Plugin OIDC utilisant notre propre fournisseur OIDC (:camera_flash: 1)
  • Aucune autre authentification que l’OIDC (c’est-à-dire pas d’inscription par e-mail + mot de passe) (:camera_flash: 2)
  • Dernière inscription réussie le 22 novembre 2023 à 5h23 NZDT
  • Le plugin AI a été installé vers le 22 novembre 2023 à 6h03 NZDT (cela aurait causé le redémarrage de l’instance Discourse)
  • Aucun journal d’événements de modifications de configuration système depuis octobre, et rien de pertinent pour l’authentification depuis mars (:camera_flash: 3)
  • Beaucoup d’activité sur le forum, aucun problème d’espace disque / base de données, etc.

Le problème

  • Le flux de connexion fonctionne correctement mais après le retour, les utilisateurs sans compte préexistant ne sont pas connectés
  • Aucun message d’erreur ne s’affiche
  • Aucun message d’erreur dans les journaux (nous avons quelques erreurs CSRF dans les journaux mais elles ne sont pas corrélées avec les échecs de connexion)
  • La journalisation détaillée du plugin OIDC montre qu’il interroge correctement les données du fournisseur OIDC, obtient les revendications, etc. et ne montre aucun problème (:camera_flash: 4)

Ce que nous avons essayé

  • Désactivation du plugin Discourse AI
  • Suppression du plugin Discourse AI
  • Vérification des réponses des cookies pour les domaines incompatibles
  • Mise à jour de tous les plugins / composants vers la dernière version (:camera_flash: 5)
  • Confirmation qu’aucun paramètre n’a été modifié
  • Investigation des journaux sur l’hôte. Rien ne ressort.

Voici une vidéo du problème. La première connexion est pour un utilisateur sans compte Discourse existant. La seconde est avec mon utilisateur administrateur.

https://www.loom.com/share/3aad210d844849dc8154ce6e5db50d29

Des idées sur ce que nous devrions examiner ensuite ?

:camera_flash: 1

:camera_flash: 2

:camera_flash: 3

:camera_flash: 4

:camera_flash: 5

1 « J'aime »

Salut @snikch :wave:

Lorsque je parcours le processus de connexion sur votre site, je vois cette erreur dans la console Javascript. Elle provient de l’ID de thème 12, qui semble tenter (et échouer) d’ajouter une sorte de style supplémentaire pour le bouton de connexion ?

Si j’utilise les outils de développement de mon navigateur pour “bloquer” le Javascript de ce thème particulier, tout semble fonctionner comme prévu.

Je pense donc que pour que les choses fonctionnent à nouveau, vous pouvez soit désactiver le thème ID 12, soit le modifier pour corriger/supprimer le code problématique.

Cela dit, nous ne voulons vraiment pas que ce type d’erreur de thème casse complètement la connexion pour les sites ! Je vais donc voir si nous pouvons améliorer notre gestion des erreurs ici :eyes: (edit : PR pour améliorer cela ici)

5 « J'aime »

Wow, merci @david. J’avais vu cette erreur et créé une carte pour qu’elle soit triée, mais j’avais simplement supposé que cela n’avait rien à voir avec la connexion de l’utilisateur, car j’avais supposé que tout était côté serveur et se produisait avant que le JS ne rende la page ! Beaucoup d’hypothèses là :facepalm: Je vois maintenant qu’il faut montrer la modale Créer un compte.

Merci beaucoup pour l’aide :heart_eyes_cat:

1 « J'aime »

Ce sujet a été automatiquement fermé après 21 heures. Les nouvelles réponses ne sont plus autorisées.