API di autenticazione utente

2

Sto sviluppando un'API Web per un database utente che verrà utilizzato per verificare che una determinata combinazione nome utente / password sia valida.

Sto solo cercando commenti / critiche sul seguente metodo che sto pensando di usare:

  • I record delle chiavi API sono memorizzati nel database
  • Ogni record della chiave API è costituito da una chiave API pubblica e una chiave API privata
  • I client API utilizzano la chiave API privata per salare l'hashing del nome utente / password specificato
  • Nome utente, password e chiave API pubblica vengono inviati tramite la richiesta HTTP GET all'API per la convalida
  • Viene restituito un codice di risposta personalizzato in base a ciò che accade sul server

È un modo sicuro di procedere? Qualsiasi consiglio è molto apprezzato.

    
posta connorbode 17.04.2013 - 01:59
fonte

1 risposta

1
  1. Usa sempre il POST HTTP per inviare i dati al server.GET dovrebbe essere utilizzato per il recupero dei dati.
  2. Devi sempre utilizzare HTTPS per il tuo servizio web.

API clients use the private API key to salt the hashing of the given username / password

Se ti riferisci alla chiave privata del tuo server di autenticazione, allora questo è un approccio errato. La chiave privata del server non deve essere mantenuta con il client. Se si sta utilizzando una connessione sicura, non è necessario eseguire l'hashing della password sul lato client e lascia che il tuo server gestisca il carico.

qui è un buon riferimento per le tecniche di hashing della password e l'uso del sale .

    
risposta data 17.04.2013 - 06:24
fonte