2008-12-22 10 views
16

Je vais développer un service Web REST-ful pour un nouveau site Web public. L'idée derrière le service Web est de faire développer par des tiers des interfaces utilisateur totalement fonctionnelles pour la logique métier.Authentification de service Web en utilisant OpenID

Pour des raisons de sécurité, je voudrais éviter que les utilisateurs doivent donner leur mot de passe pour notre service aux applications tierces. (Peut-être que cela ne devrait pas être une grande préoccupation?) Au lieu de cela, je cherche à mettre en place une sorte de système de connexion sur notre site qui fournit un jeton d'authentification à l'application tierce, mais garde le mot de passe hors de leur portée. Cela m'a fait penser qu'OpenID pourrait être une solution potentielle ici. Il me semble que cela devrait fonctionner: le mot de passe réel est géré par le fournisseur OpenID et ne dépend donc pas de l'application tierce. Je pense que le problème résiderait probablement dans les différents renvois, mais cela devrait être gérable.

Cependant, il y a un manque surprenant d'informations Googleable à ce sujet, donc j'aimerais l'avis de SO. Quelqu'un a-t-il déjà mis en place un système similaire? Est-ce même possible? Est-ce que ça en vaut la peine?

Répondre

13

Je suis entièrement d'accord que ce que vous voulez est OAuth; Je dis avoir travaillé sur les systèmes OAuth et OpenID. J'ai également été dans votre bateau plusieurs fois, ayant à développer un api de service Web de REST.

Pour une très bonnes idées sur OAuth, et pourquoi il est ce que vous voulez voir ces article ci-joint:

Ce sont doivent lire, il y a quatre parties les lire: http://hueniverse.com/oauth/guide/

la RFC, lire après avoir lu ci-dessus, car il peut être un peu intimidant pour la plupart: http://oauth.net/core/1.0

Et puis enfin peut-être du code. J'ai quelques projets hébergés qui utilisent Java/Groovy pour faire OAuth. L'un est un ancien client OAuth, l'autre est un client pour des interactions spécifiques avec NetFlix. http://www.blueleftistconstructor.com/projects/

Si vous êtes relativement inexpérimenté REST (vous n'avez pas construit une api web à grande échelle encore) Je recommande que vous achetez (ou mieux obtenir votre patron) « RESTful Web Services » par Richardson & Ruby. C'est un livre O'Reilly. Je peux dire que c'est l'un de leurs meilleurs livres à faire ses débuts au cours des dernières années.

Il peut également être utile d'examiner certaines API basées sur RESTful OAuth. L'API NetFlix est un exemple parfait: http://developer.netflix.com/docs

Bonne chance et bon codage!

+0

Malheureusement, Netflix n'est pas disponible dans mon pays. Ainsi, je ne peux pas lire [leurs documents] (http://developer.netflix.com/docs) :( – anakkin

2

Jusqu'à présent, je l'ai trouvé 1 lien utile:

http://markmail.org/message/utf7js473zqv45hv

Cette conversation mentionne quelque chose appelé « Echange OpenID » qui est juste mon allée ... mais le lien inclus est cassé et il y a pas beaucoup d'informations solides sur Google pour cela.

On dirait OAuth pourrait être le billet: http://oauth.net/

0

Nous avons travaillé sur un projet d'intégration de l'authentification OpenID pour les services Web SOAP. Vous pouvez trouver notre projet au http://code.google.com/p/ws-sandhana/.

Vous pouvez fournir Single Sing On à vos services Web en utilisant l'authentification OpenID et vous pouvez appliquer les fournisseurs OpenID approuvés et les attributs requis des utilisateurs en définissant des stratégies de sécurité de service.

Ceci est une implémentation open source sur Apache Rampart qui est le module de sécurité pour le moteur de service Web Apache Axis2. Vous pouvez trouver notre blog au http://sandhana-project.blogspot.com/pour plus d'informations.

Questions connexes