La risposta qui dipende dalla propensione al rischio e dal profilo delle minacce dell'organizzazione. Come sottolinea @adi, in questo caso c'è un compromesso tra usuabilità e sicurezza.
Per me, consentire la rimozione di 2FA senza reinserire un qualche tipo di credenziali lascia le applicazioni a rischio, in cui un utente malintenzionato ha accesso a una sessione attiva (ad esempio tramite hijacking di sessione o in un ambiente PC condiviso), quindi è solo davvero adatto per applicazioni a basso rischio (e la domanda potrebbe essere, perché hai 2FA lì in primo luogo ...)
Quindi l'opzione è, cosa ti serve in termini di nuova autenticazione per eseguire la rimozione di 2FA.
Se consenti solo password + sessione autenticata (l'approccio github), allora stai rischiando in qualche modo attacchi di tipo malware per PC in cui un utente malintenzionato potrebbe avere una password statica (tramite un keylogger) e una sessione attiva (scaricando informazioni da il browser), ma una volta che l'utente malintenzionato ha accesso privilegiato al tuo sistema client, sei comunque in una brutta posizione.
Un'altra opzione potrebbe essere quella di richiedere un token fallback che è stato registrato quando 2FA è stato impostato. Questo è senza dubbio dannoso per l'esperienza utente (è molto facile perdere un token che si è configurato potenzialmente anni fa), e potenzialmente indebolito laddove l'utente fa cose come memorizzare i token in chiaro sul PC utilizzato per accedere.
Una terza opzione è quella di usare un altro canale per confermare l'azione. È probabile che ciò abbia senso solo per i sistemi a più alto valore (ad es. Online banking, accesso privilegiato aziendale interno). Qui l'utente viene convalidato tramite un altro meccanismo (ad es. Messaggio SMS, conferma fuori banda tramite una chiamata telefonica)