2012-03-01 54 views
5

我一直在探索OAuth版本1.0爲我目前正在使用的REST API。真正的雙腿Oauth

我有3個身份驗證方案

  1. 這涉及到3方,服務提供者,消費者和用戶。三腿Oauth匹配這種情況。
  2. 涉及2方,消費者和服務提供商。這是一個雙腿Oauth最適用的場景,如果是這樣的話,那麼根據我的理解,這個過程與HTTP基本認證之間幾乎沒有什麼區別。
  3. 我也在創建一種特殊類型的用戶,可以在沒有用戶授權的情況下始終訪問當前登錄的用戶數據。在仍然實現OAuth的情況下,這如何融入圖片。

使用這種情況?我怎樣才能整齊地實現Oauth,這怎麼能幫助我理解3腿和2腿Oauth過程?

+0

您將只存儲訪問令牌而不是密碼。因此,它更安全(無密碼存儲)和訪問可以在每個應用程序的基礎上撤銷(更改密碼將打破所有需要該帳戶的應用程序) – aitchnyu 2012-03-03 12:41:05

回答

1

數字1:正確,只需使用典型的3腿oauth流。

Number 2. 2-legged oauth與http-basic幾乎相同,只是oauth簽名爲你提供了保護MITM攻擊(但是如果你使用的是基於TLS的http-basic比獲得相同的保護)。雙腿oauth的過程就是用消費者密鑰/祕密簽署請求,這與使用http basic的用戶名/密碼同義。

Number 3.我不是100%清楚你在這裏的意思,但它聽起來類似於谷歌如何使用谷歌應用程序域的雙腿oauth。看看他們的文檔:https://developers.google.com/accounts/docs/OAuth#GoogleAppsOAuth

你看過OAuth 2.0嗎?它仍處於草稿階段,但對於不同的場景它有更多的靈活性。可能是需要考慮的事情。 http://oauth.net/2/

+1

非常感謝josh。我通過谷歌的雙腿Oauth實施,它會照顧場景2.至於場景3,我只是使用用戶名和密碼認證,因爲在這種情況下,消費者也是提供者。我也通過了Oauth 2規範,當我找到一個好的PHP庫或者可以爲自己編寫一個規範時,我將不得不遷移到2.0以後。 – kayfun 2012-03-04 15:05:49