2009-05-08 9 views
3

Je planifie actuellement un nouveau projet Web. Les clients vont se connecter à l'aide d'un navigateur Web normal et, dans le cas de téléphones mobiles compatibles java, j2me client. Je voudrais vraiment utiliser l'authentification OpenID. Dans le cas d'un navigateur Web ordinaire, les choses sont assez simples. Cependant, je ne suis pas vraiment sûr des applications installées (comme le client j2me installé sur un périphérique mobile) - l'authentification OpenID standard est effectuée en entrant un nom d'utilisateur/mot de passe sur une page Web du fournisseur OpenID particulier - ce qui est une limitation :)Authentification OpenID à partir d'une application installée

Est-ce que quelqu'un a fait face à une telle situation? Est-il possible de créer un mécanisme d'authentification sur le site qui utilise OpenID à partir d'un client j2me mobile?

Actuellement, je pense à la solution que les utilisateurs qui souhaitent se connecter à partir de leurs mobiles téléchargent l'application j2me nécessaire à partir du site Web du serveur après s'être authentifiés (authentification régulière du navigateur). L'application client mobile peut être assemblée dynamiquement sur le serveur avec le certificat SSL intégré associé à un utilisateur OpenID particulier. Après cela, le client j2me peut s'authentifier auprès du serveur sans entrer de nom d'utilisateur/mot de passe. Les données qui vont être stockées sur le serveur ne sont pas si sensibles - compte tenu des cas de vols de téléphones mobiles, etc

Quelqu'un peut-il trouver une meilleure solution?

Répondre

3

La meilleure solution IMO pour ce que vous faites est d'utiliser OAuth combiné avec OpenID. Vous utilisez OpenID au RP est très bien. Mais pour les applications installées qui ont besoin d'accéder à ce site Web, ils doivent utiliser OAuth pour obtenir l'autorisation. Le flux fonctionnerait comme ceci:

  1. utilisateur installe l'application sur leur appareil
  2. lors de l'installation ou lors du premier lancement, l'application a un bouton « me Autorisez ».
  3. L'utilisateur appuie sur le bouton et un navigateur Web affiche le site Web auquel l'application cliente doit accéder pour accéder aux données.
  4. L'utilisateur se connecte à ce site en utilisant son OpenID
  5. Le site demande maintenant "Voulez-vous autoriser l'application client X?"
  6. L'utilisateur dit oui et ferme le navigateur.
  7. L'application client réapparaît et dit "merci". et a maintenant le jeton OAuth nécessaire pour accéder aux données de l'utilisateur sans que l'utilisateur ne se connecte à nouveau.
+0

Merci beaucoup! Je ne connaissais rien à OAuth, je vais y jeter un coup d'oeil. Pourtant, il semble très prometteur. Merci encore – martinsb

+0

Qu'en est-il du cas où il n'est pas possible d'ouvrir un navigateur Web côté client? par exemple. voir https://dev.twitter.com/discussions/3455 –

+0

OpenID nécessite un navigateur Web. Donc, cette question, à propos de OpenID, semble être un endroit inapproprié pour discuter de scénarios non-navigateur. Cependant, si votre appareil/client sans navigateur a au moins une connectivité réseau et une méthode pour entrer un code PIN, alors quelque chose de similaire au lien que vous avez inclus et qui parle d'OAuth peut certainement fonctionner. –

Questions connexes