it-swarm.it

Tecniche di autenticazione API Web

Abbiamo un framework di servizi web asp.net MVC per servire xml/json per le persone Ricevi richieste ma stanno lottando per capire il modo migliore (veloce, facile, banale per gli utenti che codificano con javascript o OO = lingue) per autenticare gli utenti. Non è che i nostri dati siano sensibili o altro, vogliamo solo che gli utenti si registrino in modo da poter avere il loro indirizzo e-mail per avvisarli delle modifiche e tenere traccia dell'utilizzo.

Nel nostro precedente tentativo avevamo il nome utente nell'URI e ci saremmo assicurati che il nome utente esistesse e incrementare le tabelle db con l'uso. Questo è stato super semplice ma noteremmo persone che usano demo come nome utente ecc. Quindi abbiamo bisogno che sia un po 'più sofisticato.

Quali tecniche di autenticazione sono disponibili? Cosa usano/fanno i principali giocatori.

26
Steve

Ho fatto quella domanda su StackOverflow e puoi leggilo qui . Vedi anche la mia risposta alla mia domanda. Che si tratta di autenticazione precisamente senza dover passare la password per ogni richiesta e senza SSL o crittografia. Solo un semplice hashing.

10
user2567

Questo video è un modo interessante di usare una chiave API con il tuo servizio WCF/REST. codice .

3
Tangurena

Immagino che tu stia usando Visual Studio. Se si utilizza vs 2010 con framework 4.0, è possibile controllare il modello "WCF REST Service With API Key Verification" in vs 2010.

0
KinGBin

Uso sempre l'autenticazione HTTP per i servizi Web. L'autenticazione stessa verrebbe gestita dal tuo server web, probabilmente IIS nel tuo caso. Quindi configureresti IIS per l'autenticazione con il tuo database, un archivio LDAP, o simili.

Dovresti quindi accedere al nome utente tramite la proprietà User.Identity.Name

EDIT : Esempio di autenticazione JQuery:

/* I found that providing the username and password both in the
   the arguments and in the url parameter seems to have better compatibility,
   if it works well for you, it is highly advisable to remove the 
   user/pass from the url */

function doLogin (){
  $.ajax({
    username: $('#username').val(),
    password: $('#password').val(),
    url: 'https://'+$('#username').val()+':'+$('#password').val()+'@api.example.com',
    dataType: 'jsonp',
    context: $('#result'),
    success: function(d) { $(this).html(d); $(location).attr('href','https://api.example.com/success'); }
    });
    return false;
}
0
ewindisch