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:
- Unterstützung von Benutzername/Passwort und OpenID - Ich bin mir nicht sicher, wie gut iPhone/Droid-Apps die OpenID-Authentifizierung unterstützen können.
- 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
- Verwendung eines API-Tokens - Dies bereitet mir aus zwei Gründen Sorgen:
- Benutzer müssten ihren API-Schlüssel manuell eingeben, was aus Benutzersicht nervig ist
- Sie könnten ihren API-Schlüssel leicht weitergeben/teilen, was Berichte/Metriken beeinträchtigen würde.
- Etwas anderes, das ich übersehen habe?