2011-01-03 4 views
3

Ich versuche, Google App Engine als Authentifizierungsserver für eine mobile Anwendung zu verwenden, die nativ auf Android ausgeführt wird. Benutzernamen und Passwörter werden in GAE gespeichert und mein Ziel ist es, Anmeldeinformationen von der mobilen Anwendung mit GAE sowohl speichern als auch verifizieren zu können. Ist das möglich? Ich habe OAuth und JSON untersucht, aber ich glaube nicht, dass ich dafür die richtige Einstellung habe.Google App Engine als Authentifizierungsserver für mobile Anwendung

Auch, wenn ich das falsch mache, bitte zeigen Sie mir den richtigen Weg.

Antwort

0

Wenn Sie mit "storign credentials" meinen, dass Sie Benutzername und Passwort speichern, dann stelle ich mir vor, dass Sie das falsch machen. Unabhängig davon, ob Sie über OAuth oder OpenID sprechen, besteht die Idee darin, dass Sie niemals das Passwort (und vielleicht auch keinen Benutzernamen) des delegierten Authentifizierungsmechanismus sehen oder haben. Stattdessen erhalten Sie ein Authentifizierungs- oder Autorisierungs-Token, um Ihre Arbeit zu erledigen (und im Falle von OpeniD einige Metainformationen über die Person wie Vor-/Nachname und E-Mail-Adresse).

Übrigens, haben Sie eine dritte Partei in Betracht gezogen, wie Janrain?

1

Wenn Sie an einer API-ähnlichen Implementierung in Ihrer GAE-Instanz interessiert sind, würde ich auf jeden Fall mehr in OAuth schauen. Aber wenn Sie nur an der Validierung von Anmeldeinformationen für diese eine mobile Anwendung interessiert sind, müssen Sie nicht so weit gehen.

Glücklicherweise können Sie Ihre GAE-Instanz über SSL aufrufen, das bedeutet, dass Sie alle Aufgaben des Handshaking und der Verschlüsselung abwickeln können. Dann würde ich einfach entweder http-basic authentication verwenden, oder einfach Benutzer-ID und verschlüsseltes Passwort als Parameter in der Anfrage senden.

Auf dem iPhone gibt es ein KeyChain zum Passwort speichern, vielleicht gibt es ein Android-Gegenstück? Stellen Sie sicher, dass Passwörter verschlüsselt auf dem Gerät und im GAE-Datenspeicher gespeichert werden. Senden Sie das verschlüsselte Passwort bei der Validierung der Zugangsdaten. Sie sollten niemals die Klartextkennwörter Ihres Benutzers kennen. Das würde ein gewisses Maß an Unklarheit bieten, was ich für ausreichend halte (definitiv, wenn es über SSL gesendet wird).

Dann können Sie einfach zurückgeben, ob die Kontoinformationen verifiziert sind oder nicht.