Tecniche di autenticazione Web api

25

Abbiamo un framework del servizio web MVC asp.net per fornire xml / json per i popoli Ricevi richieste ma stai cercando di capire il modo migliore (veloce, facile, banale per gli utenti che codificano con javascript o lingue OO) per autenticare gli utenti . Non è che i nostri dati siano sensibili o altro, vogliamo solo che gli utenti si registrino in modo che possiamo avere il loro indirizzo e-mail per notificare loro le modifiche e tenere traccia dell'utilizzo.

Nel nostro precedente tentativo avevamo il nome utente nell'URI e dovevamo semplicemente assicurarci che il nome utente esistesse e incrementare le tabelle db con l'uso. Questo era super-base, ma potremmo notare che le persone usano la 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 attori.

    
posta Steve 12.01.2011 - 19:02
fonte

4 risposte

10

Ho posto la domanda su StackOverflow e puoi leggi qui . Vedi anche la mia risposta alla mia stessa domanda. Che riguarda l'autenticazione precisa senza dover passare la password per ogni richiesta e senza SSL o Crittografia. Semplice hashing.

risposta data 12.01.2011 - 20:16
fonte
3

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

    
risposta data 13.01.2011 - 03:45
fonte
0

Lo prendo usando lo studio visivo. Se usi vs 2010 con framework 4.0, potresti controllare il "Servizio REST WCF con verifica chiave API" template in vs 2010.

    
risposta data 12.01.2011 - 20:40
fonte
0

Uso sempre l'autenticazione HTTP per i servizi web. L'autenticazione stessa verrebbe gestita dal tuo server web, probabilmente IIS nel tuo caso. Dovresti quindi configurare IIS per l'autenticazione con il tuo database, un archivio LDAP o simile.

Avresti quindi accesso 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;
}
    
risposta data 13.01.2011 - 02:07
fonte

Leggi altre domande sui tag