この機能を標準的な方法で実装するには、OIDC を通じて行う必要があります。Discourse ID は現在、OAuth2 のみで構築されています。MFA フラグをサポートするには、プロバイダー層で OIDC を実装し、必要とするクライアント向けに MFA 値を双方向に渡す処理を追加する必要があります。
いくつかの複雑な問題があります:
- Discourse コアでは、特定のユーザータイプ(スタッフのみ、または全員)に対してのみ 2FA を必須とするオプションがあります。ID 経由でも同様のサポートが必要になるでしょう。
- ID では Google、Apple、Facebook、Github からのログインが可能ですが、これらのプロバイダーはユーザーがログイン時に 2FA を完了したかどうかを確実には伝えないため、ID 層で 2FA を実装する必要があるかもしれません。また、一部のユーザーに対して二重の 2FA を課すことにもなり、これは望ましくありません。
- 身元プロバイダー層(ローカルインスタンスではなく)での 2FA は、すべての利用者にとって十分でしょうか?一般的にはそうだと思いますが、この方針にコミットする前に、もう少し調査を行う必要があります。