2008-12-22 21 views
16

我將爲新的公共網站開發一個REST-ful Web服務。 Web服務背後的想法是讓第三方爲業務邏輯開發全功能的用戶界面。使用OpenID的Web服務身份驗證

出於安全原因,我想避免用戶將我們的服務密碼提供給第三方應用程序。 (也許這不應該是一個大問題?)相反,我正在尋求在我們的網站上實施某種登錄系統,它爲第三方應用程序提供了身份驗證令牌,但實際密碼不在他們手中。

這讓我覺得OpenID可能是一個潛在的解決方案。在我看來,它應該可以工作:實際的密碼由OpenID提供商處理,因此它不會與第三方應用程序一起使用。我認爲麻煩可能在於各種傳遞,但這應該是可以管理的。

但是,在這方面有一個令人驚訝的Googleable信息缺乏,所以我想要SO的意見。有沒有人實施過類似的系統?它甚至有可能嗎?這是否值得麻煩?

回答

13

我完全是你想要的是OAuth的同意;我說過曾經在OAuth和OpenID系統上工作過。我也曾多次在你的船上,不得不開發一個REST Web服務API。

有關OAuth的一個很好的想法,爲什麼它是你想看到這些附加文章的內容:

這些都是必須閱讀,有四個部分閱讀它們: http://hueniverse.com/oauth/guide/

的RFC,閱讀以上閱讀後,因爲它可以是一個令人畏懼的大多數: http://oauth.net/core/1.0

然後最後也許一些代碼。我有幾個託管的項目正在使用Java/Groovy進行OAuth。一個是普通的舊OAuth客戶端,另一個是與NetFlix進行特定交互的客戶端。 http://www.blueleftistconstructor.com/projects/

如果你是REST相對缺乏經驗的(你還沒有建立一個全尺寸網頁API還)我建議你買(或更好的讓你的老闆)「REST Web服務」理查德森&紅寶石。這是一本O'Reilly的書。我可以說這是他們過去幾年首次亮相的更好的書籍之一。

它也可能有助於查看一些基於REST的OAuth API。 NetFlix API就是一個很好的例子:http://developer.netflix.com/docs

祝你好運,快樂的編碼!

+0

不幸的是,netflix在我的國家不可用。因此我無法閱讀[他們的文檔](http://developer.netflix.com/docs):( – anakkin 2015-01-09 12:14:11

2

到目前爲止,我已經找到1個有價值的鏈接:

http://markmail.org/message/utf7js473zqv45hv

這次談話中提到一種叫「OpenID的交流」,這是我熟悉的......但其中的鏈接被破壞,有在Google上沒有太多可靠的信息。

看起來OAuth的可能是票:http://oauth.net/

0

我們一直致力於爲SOAP Web服務集成OpenID身份驗證的項目。你可以在http://code.google.com/p/ws-sandhana/找到我們的項目。

您可以使用OpenID身份驗證爲您的Web服務提供Single Sing On,並且可以通過定義服務安全策略來強制執行受信任的OpenID提供程序和用戶的必需屬性。

這是Apache Rampart上的一個開源實現,它是Apache Axis2 Web服務引擎的安全模塊。您可以在http://sandhana-project.blogspot.com /找到我們的博客,瞭解更多信息。