3 Stimmen

Api-Authentifizierungsoptionen mit ASP.NET MVC

Ich versuche den Zugriff auf Controller/Aktionen einzuschränken, die die API meiner Website repräsentieren. Nur registrierte Benutzer, die bestimmte Kriterien erfüllen (Zahlungskonten, keine kostenlosen Testversionen), können die API verwenden. Die Website unterstützt derzeit die Formularauthentifizierung, bei der sich Benutzer mit einer Benutzername/Passwort-Kombination oder über OpenID anmelden.

Wie sollen sich die Benutzer mit der API authentifizieren? Die API wird anfangs von mobilen Anwendungen (iPhone, Droid) verwendet. Mein Hauptanliegen ist die Unterstützung von OpenID in mobilen Apps.

Meine Gedanken zu verfügbaren Optionen sind:

  1. Unterstützung von Benutzername/Passwort und OpenID - Ich bin mir nicht sicher, wie gut iPhone/Droid-Apps die OpenID-Authentifizierung unterstützen können.
  2. Nur Unterstützung von Benutzername/Passwort - OpenID-Benutzer dazu zwingen, eine Benutzername/Passwort-Kombination für die API zu erstellen - Schlechte Benutzererfahrung für OpenID-Benutzer
  3. Verwendung eines API-Tokens - Dies bereitet mir aus zwei Gründen Sorgen:
    1. Benutzer müssten ihren API-Schlüssel manuell eingeben, was aus Benutzersicht nervig ist
    2. Sie könnten ihren API-Schlüssel leicht weitergeben/teilen, was Berichte/Metriken beeinträchtigen würde.
  4. Etwas anderes, das ich übersehen habe?

0voto

Beep beep Punkte 18441

Wir verwenden #1 - Open ID oder Benutzername/Passwort. Ich sehe jedoch nicht, wie dies spezifisch für asp.net oder asp.net mvc ist ... es scheint eher eine architektonische Frage zu sein.

0voto

Zim Punkte 326162

Ich denke, es hängt davon ab, wie Sie Ihre Dienst-APIs erstellen (REST/JSON, XML, WCF, usw.), aber hier sind einige Links, die helfen werden:

ASP.NET MVC - HTTP-Authentifizierungsaufforderung

http://code.google.com/p/dotnetopenid/

-1voto

Jim Geurts Punkte 19561

Ich habe festgestellt, dass die tokenbasierte Authentifizierung am besten funktioniert hat.

OAuth 2 ist eine attraktive Alternative, die von allen mobilen Geräten unterstützt wird und von einer Website, die bereits mehrere Formen der Authentifizierung zulässt.

DotNetOpenAuth bietet eine .NET-Bibliothek für die Arbeit mit OAuth2 sowie anderen Authentifizierungstechnologien.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X