2010-01-20 67 views
4

我認爲使用OAuth進行單點登錄(SSO)和RESTful服務。乍看之下,使用OAuth作爲事實上的標準看起來很自然。但我必須承認,我不明白如何將其用於SSO。在學習OAuth期間,我發現越來越多的Auth批評 - 太多,我傾向於認爲OAuth失敗了。OAuth失敗了嗎?

OAuth is hard to implement.

Usability is poor.

Why Facebook doesn't implement OAuth today:

  • 「OAuth是更復雜,比我們自己的本地認證機制不太高性能的」
  • 「的OAuth WRAP看起來將解決大部分或全部這些問題的「
  • 因爲tw Ø許多要求和長期的URI
  • 「庫質量總體是相當差」

Possibly WRAP, powered by Microsoft, Yahoo and Google, is going to replace OAuth.

What's going on with OAuth (and WRAP)?

所以一直未能OAuth的? SSO有哪些替代選擇 - 最好是那些被廣泛接受或者被廣泛使用的觀點?你喜歡WRAP

+2

我們在我的項目中使用了oauth,並確定它需要一些時間和精力來啓動和運行(但並不像我們預期的那麼多)。是的,對於用戶必須登錄到另一個站點可能有點煩人。但是現在,一旦我們運行起來,它真的很甜蜜。訪問令牌在很長一段時間內都是有效的,它非常流暢和美觀,您無需登錄即可使用。我不認爲它失敗了。這只是被人誤解。 – 2010-01-21 18:29:41

回答

8

OAuth不是SSO解決方案,它是通常用於授權API授權的協議。 3支持的OAuth允許請求訪問受保護資源的客戶端將授權委託給託管該資源的服務器。基本上,用戶不必將他們的憑證提供給第三方(客戶端),而僅僅是託管受保護資源的服務器。如果您希望實施單點登錄,OpenID可能是更合適的解決方案。您還可以使用OpenID OAuth擴展,這將允許您通過OAuth將認證與授權相結合。

工作目前正在OAuth 2.0上完成。 WRAP被開發作爲一種解決方案來解決原始OAuth 1.0a規範未涵蓋的一些用例。 WRAP不會取代OAuth,相反,來自WRAP的想法將在適當的情況下進入OAuth 2.0。許多的OAuth的原作者,以及WRAP的作者之一寫了關於這個在這裏:

What's going on with OAuth?

所以,不,OAuth的沒有失敗的,其實它是享有相當廣泛採納。 OAuth 1.0將繼續由大量提供商實施,並且最終還將提供OAuth 2.0。 WRAP適用於那些想要利用其現在使用的用例的人。

關於作爲客戶端實現OAuth的難度,爲什麼不嘗試一下呢?可用的庫具有不同的質量,但如果使用體面的庫,您通常可以在一天內實施OAuth客戶端。