it-swarm-eu.dev

Web-API-Authentifizierungstechniken

Wir haben ein asp.net MVC-Webdienst-Framework für die Bereitstellung von XML/JSON für Benutzer. Erhalten Sie Anfragen, haben aber Schwierigkeiten, den besten Weg zu finden (schnell, einfach, trivial für Benutzer, die mit Javascript oder OO) codieren) = Sprachen), um Benutzer zu authentifizieren. Es ist nicht so, dass unsere Daten vertraulich sind oder so, wir möchten nur, dass Benutzer sich registrieren, damit wir ihre E-Mail-Adresse haben, um sie über Änderungen zu informieren und die Nutzung zu verfolgen.

Bei unserem vorherigen Versuch hatten wir den Benutzernamen in der URI und stellten nur sicher, dass der Benutzername vorhanden war, und erhöhten die DB-Tabellen mit der Verwendung. Das war super einfach, aber wir würden bemerken, dass Leute Demo als Benutzernamen usw. verwenden, also müssen wir es etwas ausgefeilter machen.

Welche Authentifizierungstechniken stehen zur Verfügung? Was verwenden/tun die Hauptakteure?.

26
Steve

Ich habe diese Frage auf StackOverflow gestellt und Sie können hier lesen . Siehe auch meine Antwort zu meiner eigenen Frage. Hier geht es um die Authentifizierung, ohne dass das Kennwort für jede Anforderung übergeben werden muss und ohne SSL oder Verschlüsselung. Nur einfaches Hashing.

10
user2567

Dieses Video ist eine interessante Möglichkeit, einen API-Schlüssel mit Ihrem WCF/REST-Service zu verwenden. Code .

3
Tangurena

Ich nehme an, Sie verwenden Visual Studio. Wenn Sie vs 2010 mit 4.0 Framework verwenden, können Sie die Vorlage "WCF REST Service mit API-Schlüsselüberprüfung" in vs 2010 überprüfen.

0
KinGBin

Ich verwende immer die HTTP-Authentifizierung für Webdienste. Die Authentifizierung selbst wird von Ihrem Webserver ausgeführt, wahrscheinlich IIS in Ihrem Fall. Sie würden dann IIS) konfigurieren, um sich bei Ihrer Datenbank, einem LDAP-Speicher, zu authentifizieren. o.ä.

Sie würden dann über die Eigenschaft User.Identity.Name auf den Benutzernamen zugreifen.

EDIT : Beispiel für die JQuery-Authentifizierung:

/* 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