feat: self-hosted env flag to require MFA for every dashboard user

Aberta
#5,025 1 comentário 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

  • #5034 de @MauryaQbit — fechado sem integrar

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
35/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
typescript

Direção de pesquisa

The request is a new opt-in MFA_REQUIRED webapp environment variable that gates dashboard access on TOTP MFA being enabled, and blocks users from disabling it. Start with how the webapp already handles sign-in, the existing TOTP opt-in flow, and where dashboard requests are authorized. Done means that with the flag set, an MFA-less user is redirected to setup and other dashboard routes refuse them, and with the flag unset behavior is unchanged. Because the issue has no discussion yet, confirm the design with the maintainers before building on the author's pending pull request.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Is your feature request related to a problem? Please describe.

Self-hosted instances can't require multi-factor authentication. TOTP MFA is opt-in for each user, magic-link login is always available, and users can turn MFA off themselves. Operators under compliance programs (FedRAMP, SOC 2, HIPAA) need to require a second factor for every dashboard user, not just recommend one.

Describe the solution you'd like to see

An opt-in MFA_REQUIRED webapp env var, off by default. When it's set:

  • A signed-in user without MFA is sent to a setup page. Other dashboard requests are refused until they enable it.
  • Users can't disable MFA.
Describe alternate solutions
  • Put an authenticating proxy (such as OIDC at the load balancer) in front of the dashboard. This adds infrastructure, and the MFA it enforces sits outside Trigger.dev.
  • Report users without MFA and follow up with them manually. This catches gaps but doesn't prevent access.
Additional information

I have an implementation ready and will open a PR that references this issue.

Linguagem predominante
TypeScript
Estrelas
16.5k
Forks
1.5k
Merge médio
1d 15h
PRs com merge (30d)
17

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de triggerdotdev/trigger.dev

Todas as issues de triggerdotdev/trigger.dev

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.