OpenID Connect, OAuth2 e account cancellati

2

Se utilizzo OpenID Connect o OAuth2 per l'autenticazione e un cliente cancella il proprio account OAuth2 provider (Facebook), come posso associare tranquillamente una nuova autenticazione con un provider OAuth2 diverso al vecchio account in modo che il cliente non vada a buon fine le loro informazioni memorizzate? Devo impostare alcuni metodi alternativi di autenticazione al momento della creazione dell'account?

Pensavo che come parte della registrazione con il loro fornitore OAuth2 originale (ad esempio Facebook), avrei richiesto il loro indirizzo email da Facebook e lo avrei memorizzato. Successivamente, quando il loro account Facebook viene eliminato, posso semplicemente registrarli nuovamente, ad esempio con Google+, Twitter, LinkedIn o qualche altro provider OAuth2 (OpenID Connect) che accetto, richiedo l'email da quel nuovo provider e quindi associo semplicemente il nuovo account con il vecchio account registrato su Facebook? È sicuro da un punto di vista della sicurezza? Dipende dal fatto che l'indirizzo email sia davvero il loro e che i provider di OAuth2 lo abbiano verificato.

    
posta Ralph 29.03.2018 - 14:43
fonte

1 risposta

2

I was thinking that as part of the registration with their original OAuth2 provider (e.g. Facebook), I would request their email address

puoi provare a utilizzare l'indirizzo e-mail come chiave univoca, e potrebbe funzionare principalmente, ma è pieno di problemi.

  1. Se l'utente si registra con un account Google o un account Yahoo, molto probabilmente l'indirizzo e-mail fornito sarà legato all'account. Quindi, quando l'account viene eliminato, anche l'indirizzo E-mail perisce.

  2. Se un utente elimina un account da un provider di identità che fornisce anche all'utente il suo indirizzo e-mail (vedi punto 1), diventa possibile un semplice attacco: Eve può registrare un nuovo account con l'identità fornitore e riattivare l'indirizzo e-mail, ma ora apparterrà a Eve anziché all'utente originale.

  3. Non vi è alcuna garanzia che i diversi provider di identità inviino lo stesso indirizzo e-mail per un determinato utente. In effetti, è piuttosto improbabile. Quindi non sarai in grado di identificare lo "stesso" utente in base all'indirizzo e-mail nel token ID.

Se è davvero necessario che un utente acceda al proprio account nonostante abbia eliminato l'account con cui accede di solito, è necessario impostare una forma alternativa di autenticazione prima che cancelli l'account. Ad esempio, potresti autorizzare il collegamento del suo account con più provider di identità, fornirgli un "token di accesso" di emergenza che può essere utilizzato per riscattare un account (direttamente o chiedendo il suo numero di telefono di un indirizzo di posta elettronica alternativo) oppure utilizza uno qualsiasi degli schemi di domande di sicurezza che altri siti utilizzano.

    
risposta data 29.03.2018 - 17:47
fonte

Leggi altre domande sui tag