ID Discourse et 2FA

La méthode standard pour cela est d’utiliser OIDC. Discourse ID est actuellement construit uniquement sur OAuth2. Pour prendre en charge un indicateur MFA, nous devrions implémenter OIDC au niveau du fournisseur et échanger les valeurs MFA avec les clients qui en ont besoin.

Plusieurs complications se posent :

  • Dans le cœur de Discourse, nous avons la possibilité d’exiger la 2FA uniquement pour certains types d’utilisateurs (personnel ou tous) ; il faudra probablement une fonctionnalité similaire prise en charge via l’ID.
  • L’ID permet les connexions via Google, Apple, Facebook et GitHub, mais ces services n’indiquent pas de manière fiable si l’utilisateur a bien activé la 2FA lors de la connexion. Nous pourrions donc être amenés à implémenter la 2FA au niveau de l’ID, et probablement à exiger une double authentification pour certains utilisateurs, ce qui n’est pas idéal.
  • La 2FA au niveau du fournisseur d’identité (c’est-à-dire pas sur l’instance locale) est-elle suffisante pour tous les consommateurs ? En général, je pense que oui, mais nous devrons mener quelques recherches supplémentaires avant de nous engager dans cette direction.