2012-02-09 51 views
5

我們正在使用ASP.NET MVC構建REST API。這個API在原理和用法上與Factual v3 API類似。他們使用兩腳Oauth 1作爲他們的API。我們的設計在這些應用中非常相似,主要是移動設備將在幕後使用我們的API來提供服務。應用程序的最終用戶不會知道我們的API,因此不會有任何憑據。因此,通過瀏覽器窗口將用戶重定向到身份驗證表單(如Facebook)沒有任何意義。我的問題是......什麼是auth ASP.NET MVC REST API的最佳選擇? OAuth 2.0或OAuth 1.0?

  • 爲什麼在這種情況下使用OAuth2流量最好?
  • 我們應該甚至使用Oauth2還是堅持使用雙腿OAuth 1?

僅供參考,我們使用C#/ .NET,ASP.NET MVC 3並計劃使用DotNetOpenAuth v4。

http://developer.factual.com/display/docs/Factual+Developer+APIs+Version+3

回答

4

爲什麼OAuth2流程是最好在這種情況下使用?

這不是,必然。 OAuth 2是未定義的規範。如果您需要最大的互操作性,則OAuth 1.0是更好的選擇(現在)。對於客戶端,OAuth 2更簡單,代價是服務器上顯着增加了複雜性。

我們應該甚至使用OAuth2還是堅持使用雙腿OAuth 1?

使用上面列出的優點和缺點進行選擇。此外,如果您使用DotNetOpenAuth,OAuth 1.0支持已經存在多年,而OAuth 2.0支持尚未完全烘焙,因此您可能會碰到一些路障。

+0

由於Oauth2是新的,讓我們一起去Oauth1。我下載了最新版本的DotNetOpenAuth 4(rc1)。我有一個觸摸時間排序通過所有的例子來找到一個類似於我們所需要的。我們使用ASP.NET MVC 4 Web Api來構建其餘的api。我真的只需要能夠使用帶有api密鑰和祕密的oauth來簽署請求,然後在服務器端有一個授權屬性來解碼這個請求,並根據數據庫中的密鑰和祕密驗證它。我應該遵循哪個示例? – craigtadlock 2012-03-21 21:49:31

+0

OAuthServiceProvider和OAuthConsumer樣本最相關。但聽起來用戶與你的場景無關 - 所以這聽起來像你正在描述[0腿OAuth](http://blog.nerdbank.net/2011/06/what-is-2-legged-oauth的.html)。雖然我不認爲有一個具體的例子,但它應該是非常簡單的移植上述樣本,以便它符合您的需求。 – 2012-03-25 17:15:32