2008-12-22 5 views
16

Ich werde einen REST-ful Web Service für eine neue öffentliche Website entwickeln. Die Idee hinter dem Web-Service ist, dass Dritte voll funktionsfähige UIs für die Geschäftslogik entwickeln.Web Service Authentifizierung mit OpenID

Aus Sicherheitsgründen möchte ich vermeiden, dass Benutzer ihre Passwörter für unseren Dienst den Anwendungen von Drittanbietern geben müssen. (Vielleicht sollte das kein großes Problem sein?) Stattdessen möchte ich ein Login-System auf unserer Website implementieren, das der Drittanbieter-App einen Authentifizierungs-Token zur Verfügung stellt, aber das eigentliche Passwort nicht in ihren Händen hält.

Dies ließ mich denken, dass OpenID hier eine mögliche Lösung sein könnte. Es scheint mir, dass es funktionieren sollte: Das tatsächliche Passwort wird vom OpenID-Provider gehandhabt und es ruht nicht auf der 3rd-Party-App. Ich denke, dass das Problem wahrscheinlich bei den verschiedenen Passthroughs liegen würde, aber das sollte überschaubar sein.

Allerdings gibt es einen überraschenden Mangel an Google-fähigen Informationen zu diesem Thema, so dass ich die Meinung von SO hätte. Hat jemand schon einmal ein ähnliches System implementiert? Ist es überhaupt möglich? Ist es die Mühe wert?

Antwort

13

ich völlig einverstanden, dass, was Sie wollen OAuth ist; Ich sage, dass ich sowohl an OAuth- als auch an OpenID-Systemen gearbeitet habe. Ich war auch einige Male in Ihrem Boot und musste eine REST Web Service API entwickeln.

Für eine wirklich gute Ideen auf OAuth, und warum es ist, was Sie diese beigefügten Artikel sehen wollen:

Dies sind lesen müssen, gibt es vier Teile lesen sie alle: http://hueniverse.com/oauth/guide/

der RFC, Lesen Sie nach dem Lesen oben, wie es für die meisten ein wenig entmutigend sein kann: http://oauth.net/core/1.0

Und dann endlich vielleicht ein bisschen Code. Ich habe ein paar Projekte gehostet, die Java/Groovy verwenden, um OAuth zu tun. Einer ist ein einfacher alter OAuth-Client, der andere ist ein Client für bestimmte Interaktionen mit NetFlix. http://www.blueleftistconstructor.com/projects/

Wenn Sie relativ unerfahren mit REST sind (Sie haben keine volle Skala Web api noch gebaut) Ich würde empfehlen, dass Sie kaufen (oder besser Ihren Chef) „RESTful Web Services“ von Richardson & Rubin. Es ist ein O'Reilly-Buch. Ich kann sagen, dass es eines ihrer besseren Bücher ist, das in den letzten Jahren debütiert hat.

Es könnte auch hilfreich sein, einige RESTful OAuth-basierte APIs zu betrachten. Die NetFlix-API ist ein perfektes Beispiel: http://developer.netflix.com/docs

Viel Glück und glückliche Codierung!

+0

Leider ist Netflix in meinem Land nicht verfügbar. Also kann ich [ihre Dokumente] nicht lesen (http://developer.netflix.com/docs) :( – anakkin

2

Bisher habe ich gefunden habe 1 lohnenswert Link:

http://markmail.org/message/utf7js473zqv45hv

Dieses Gespräch erwähnt etwas „OpenID Börse“, die genau mein Ding ist ... aber das mitgelieferte Link ist gebrochen und es gibt nicht viel solide Informationen auf Google dafür.

Sieht aus wie OAuth könnte das Ticket: http://oauth.net/

0

Wir haben an einem Projekt zur Integration der OpenID-Authentifizierung für SOAP-Webdienste gearbeitet. Sie finden unser Projekt unter http://code.google.com/p/ws-sandhana/.

Sie können Ihren Webdiensten Single Sing On mithilfe der OpenID-Authentifizierung bereitstellen, und Sie können die vertrauenswürdigen OpenID-Anbieter und die erforderlichen Attribute der Benutzer erzwingen, indem Sie Servicesicherheitsrichtlinien definieren.

Dies ist eine Open-Source-Implementierung auf Apache Rampart, die das Sicherheitsmodul für Apache Axis2 Web-Service-Engine ist. Sie finden unseren Blog unter http://sandhana-project.blogspot.com/für weitere Informationen.

Verwandte Themen