Autenticazione sul server client

1

Ho i seguenti requisiti per il sistema:

  1. I miei amministratori si autenticano sui server client
  2. Su http
  3. Server di autorizzazione centrale

La mia soluzione è basata su O-Auth:

  1. l'utente viene reindirizzato al server di autenticazione per verificare i suoi crediti (certificato / password), il server salva il token di autenticazione in db con timestamp e userId
  2. Il server
  3. reindirizza l'utente al client con auth-token nell'URL
  4. Il client
  5. si connette al server tramite https passando a auth-token, è segreto e id
  6. server controlla se i crediti del cliente sono ok e se ha token di autenticazione non scaduto in db (il token di autenticazione viene rimosso allora)
  7. in tal caso, prende le attestazioni dell'utente e le restituisce al server client
  8. il server client utilizza quindi cookie per l'utente di autenticazione

È una buona idea? Forse qualcosa di simile è già disponibile (sto usando C # mvc)?

Passa auth-token attraverso un enorme rischio http?

    
posta user83288 12.08.2015 - 18:12
fonte

1 risposta

2

Questa non è una buona idea. L'utilizzo dei protocolli OAuth 2.0 o OAuth 2.0ish per Authentication non è corretto. OAuth 2.0 è stato progettato come un protocollo Autorizzazione . L'utilizzo di OAuth 2.0 come protocollo di autenticazione comporta una serie di implicazioni sulla sicurezza. OpenID Connect è stato sviluppato per risolvere queste carenze in OAuth 2.0, quindi OAuth 2.0 può essere utilizzato per l'autenticazione. La fondazione OpenID Connect consiglia di utilizzare il collegamento per OpenID Connect in C #.

Inoltre, se si finisce per implementare la soluzione passando il token di autenticazione tramite HTTP e non HTTPS è un grosso rischio per la sicurezza. Se un utente malintenzionato può intercettare il token in trasmissione mentre il server reindirizza l'utente al client, l'utente malintenzionato può utilizzare il token per autenticarsi come utente senza la password dell'utente. Ogni parte di un flusso OAuth 2.0 deve avvenire su HTTPS.

    
risposta data 12.08.2015 - 21:28
fonte

Leggi altre domande sui tag