2009-05-08 9 views
3

Ich plane derzeit ein neues Webprojekt. Clients verbinden sich mit einem normalen Webbrowser und im Falle von Java-fähigen Mobiltelefonen mit dem j2me-Client. Ich würde gerne die OpenID-Authentifizierung nutzen. Im Falle eines normalen Webbrowsers sind die Dinge ziemlich einfach. Aber ich bin wirklich nicht sicher, über installierte Anwendungen (wie J2ME-Client auf einem mobiles Gerät installiert) - regelmäßige OpenID Authentifizierung durch Eingabe von Benutzername/Passwort auf einer Webseite von besonderem OpenID-Provider durchgeführt wird - was durchaus eine Einschränkung ist :)OpenID-Authentifizierung von einer installierten Anwendung

Hat jemand eine solche Situation bewältigt? Ist es möglich, einen Authentifizierungsmechanismus für die Site zu erstellen, die OpenID von einem mobilen j2me-Client verwendet?

Derzeit denke ich an Lösung, die Benutzer, die von der Server-Website notwendig J2ME-Anwendung herunterladen mögen von ihren Handys verbinden, nachdem sie sich (Authentifizierung normale Browser) authentifiziert haben. Die mobile Client-App könnte dynamisch auf dem Server mit dem eingebetteten SSL-Zertifikat zusammengestellt werden, das einem bestimmten angemeldeten OpenID-Benutzer zugeordnet ist. Danach konnte sich der j2me-Client beim Server authentifizieren, ohne einen Benutzernamen/ein Passwort einzugeben. Die Daten, die auf dem Server gespeichert werden wird ist nicht so empfindlich - man bedenken Fälle von Handy-Diebstähle usw.

jemand mit einer besseren Lösung kommen kann?

Antwort

3

Die beste Lösung IMO für das, was Sie tun, ist OAuth mit OpenID kombiniert zu verwenden. Du verwendest OpenID im RP ist in Ordnung. Für installierte Anwendungen, die Zugriff auf diese Website benötigen, sollten sie OAuth verwenden, um autorisiert zu werden. Die Strömung würde wie folgt funktionieren:

  1. Benutzer installiert App auf ihrem Gerät
  2. Während der Installation oder beim ersten Start der App hat eine „Autorisieren mir“ Button.
  3. Der Benutzer drückt die Taste und ein Webbrowser öffnet die Website, von der die Client-App aus Daten abrufen muss.
  4. Benutzer meldet sich mit ihrer OpenID an dieser Site an
  5. Website fragt jetzt "Möchten Sie Client-App X autorisieren?"
  6. Benutzer sagt ja und schließt den Browser.
  7. Die Client-App wird erneut angezeigt und sagt "Danke". und hat jetzt das OAuth-Token, das erforderlich ist, um auf die Daten des Benutzers zuzugreifen, ohne dass sich der Benutzer jemals wieder anmeldet.
+0

Vielen Dank! Ich wusste nichts über OAuth, ich werde mich darum kümmern. Trotzdem scheint es vielversprechend. Nochmals vielen Dank – martinsb

+0

Was ist mit dem Fall, wo es nicht möglich ist, einen Web-Browser auf der Client-Seite zu öffnen? z.B. siehe https://dev.twitter.com/discussions/3455 –

+0

OpenID benötigt einen Webbrowser. Diese Frage, die sich auf OpenID bezieht, scheint ein unangemessener Ort zu sein, um nicht-Browser-Szenarien zu diskutieren. Wenn Ihr Nicht-Browser-Gerät/Client jedoch mindestens über eine Netzwerkverbindung und eine Methode zur Eingabe einer PIN verfügt, kann ein ähnlicher Link wie OAuth verwendet werden. –