2015-05-17 14 views
5

Ho un'app con informazioni personali riservate (numero di previdenza sociale, informazioni sui salari). Mi piacerebbe consentire agli utenti di accedere con ID OAuth (Google, Linked In) per comodità ma richiedere che quegli account abbiano l'autenticazione a più fattori abilitata nel provider di identità, ovvero fallire l'accesso tramite OAuth2 se l'utente non ha abilitato MFA in il loro account provider di identità sottostante. Ciò mi consente di evitare di esporre le mie informazioni riservate a una password GMail debole.OAuth2 ma richiedono l'autenticazione a più fattori (MFA)

C'è un modo per farlo?

risposta

1

Purtroppo, no.
Nel caso di Google e Linkedin, il livello di autenticazione non è collegato a un ambito specifico. La risposta Oauth non specifica se l'utente ha utilizzato un token OTP o meno.

Anche se l'utente è iscritto in MFA, l'utente può registrare il computer che sta utilizzando come affidabile e in questo caso, Google non gli chiederà mai una OTP. Questo comportamento può impedire a molti utenti di accedere alla tua applicazione.

1

In realtà, credo che si possa controllare sulla propria sessione/token per vedere se è stato fatto tramite Google, Twitter, Facebook, ecc. E quindi richiedere MFA/2FA/OTP al primo utilizzo di quel token. Ha senso?

È possibile eseguire il proprio microservizio TOTP utilizzando Browser Authenticator che ha i componenti necessari per generare e verificare una chiave e un token nel browser e Node Authenticator che ha il codice lato server complementare.

Basta aggiungere il proprio meccanismo di archiviazione e una chiamata https a microservice, aggiornare la sessione/token e viola, è stata aggiunta un'autenticazione basata su password a due fattori/a più fattori/password singola su di essi.