Der standardkonforme Weg dafür ist OIDC. Die Discourse-ID wird derzeit ausschließlich auf Basis von OAuth2 implementiert. Um ein MFA-Flag zu unterstützen, müssten wir OIDC auf der Provider-Ebene implementieren und die MFA-Werte für Clients, die dies erfordern, hin und her übermitteln.
Es gibt mehrere Komplikationen:
- Im Discourse-Kern haben wir die Option, 2FA nur für bestimmte Benutzerarten (Personal oder alle) zu erzwingen; wir benötigen wahrscheinlich eine ähnliche Unterstützung über die ID.
- Die ID erlaubt Anmeldungen über Google/Apple/Facebook/Github – diese geben jedoch nicht zuverlässig an, ob der Benutzer beim Anmelden 2FA durchgeführt hat. Wir müssten möglicherweise 2FA auf der ID-Ebene implementieren und für einige Benutzer wahrscheinlich eine doppelte 2FA erzwingen, was nicht ideal ist.
- Ist 2FA auf der Ebene des Identitätsanbieters (das heißt, nicht auf der lokalen Instanz) für alle Verbraucher ausreichend? Generell denke ich ja, aber wir müssten noch etwas mehr recherchieren, bevor wir uns festlegen.