ID do Discourse e 2FA

A maneira padrão de fazer isso é via OIDC. O Discourse ID atualmente é construído apenas com OAuth2. Para suportar um indicador de MFA, precisaríamos implementar OIDC na camada do provedor e passar os valores de MFA para frente e para trás para os clientes que os exigirem.

Existem várias complicações:

  • no núcleo do Discourse, temos a opção de exigir 2FA apenas para certos tipos de usuário (funcionários ou todos); provavelmente precisamos de algo similar para ser suportado via ID
  • o ID permite logins via Google/Apple/Facebook/Github, mas eles não indicam de forma confiável se o usuário completou o 2FA ao fazer login… podemos precisar implementar o 2FA na camada do ID e também provavelmente exigir 2FA duplo para alguns usuários, o que não é ideal
  • o 2FA na camada do provedor de identidade (ou seja, não na instância local) é suficiente para todos os consumidores? De modo geral, acho que sim, mas precisaríamos fazer um pouco mais de pesquisa antes de nos comprometermos com isso