2011-03-03 122 views
3

我正在爲我的公司重新編寫一些非常過時的.NET 2.0 SOAP Web服務。所以我正在使用MVC3 RESTful重寫它們。這種方法將簡化我們的服務在我們的客戶羣(使用我們當前的SOAP服務的超過500個客戶)上的使用,這些客戶使用多種平臺和語言。MVC RESTful服務授權

我正在尋找比以前的開發人員用於我們的.NET 2.0 SOAP Web服務的更好的RESTful服務授權方法(他基本上只是讓客戶端傳入一個GUID作爲參數並將其匹配代碼後面)。

我已經看過oAuth,但是我想使用它,但是從我的上司那裏得知,這種方法對於連接到我們服務的客戶端的「級別」太複雜了,並且希望我找到另一種更簡單的方式讓他們連接,但仍有授權。我們的大多數客戶都有BASIC,不懂編程(我們幫助他們獲得連接設置,或者僱傭了一些小孩爲他們做連接)。這是上級需要另一種方法的另一個原因,因爲我們不能每天有500+(加上5-10位新客戶)尋求如何實施oAuth的幫助。

那麼,有沒有另一種方法來保證MVC3服務,而不是傳遞預設的GUID?

我已經研究過在服務站點上使用Windows身份驗證,但這對於500多個客戶端使用真的是合乎邏輯的嗎?

是否有一種簡單且安全的方法來授權多個平臺上的多個用戶使用MVC3 RESTful服務,而終端客戶端可以非常輕鬆地實現這些服務?

謝謝。

回答

4

如果你不想要任何太複雜的東西,請看Basic HTTP Authentication。如果你通過SSL使用它,那麼它應該足夠安全並且很容易爲你的客戶實現。 Twitter API實際上使用了這個,直到幾個月前他們切換到OAuth。

+0

感謝您的建議。我會研究這一點。你會不會發生一些網站,談論如何使用MVC2/3實現一個良好的基本身份驗證模型?我會盡我所能,但從不傷害問。 :) – Sean 2011-03-03 15:51:31

+0

這是一篇關於在MVC上使用基本認證的好文章http://stevescodingblog.co.uk/basic-authentication-with-asp-net-webapi/ – bigtv 2012-09-03 07:36:22

0

您想區分認證和授權。您正在尋找的是身份驗證,事實上,如Caps所示,最簡單的方法可能是使用HTTP BASIC身份驗證以及SSL來使密碼不受影響。

您可以查看其他認證方式,例如DIGEST或更高級的使用ADFS或SAML(ADFS可能會引人注目,因爲你在.NET中)。看看OpenID Connect也是如此 - 它得到了Google的大力支持,並得到了很大的支持。

一旦完成了這一步,您可能需要考慮授權 - 如果您需要它 - 控制給定客戶端可以對給定資源/項目/記錄執行的操作。爲此,您可以使用.NET框架中提供的基於聲明的授權,或者如果您需要更細粒度的授權,請查看XACML。

OAuth並不能真正解決您的問題,因爲OAuth是關於授權的授權,即我讓Twitter以我的名義寫入我的Facebook帳戶。

HTH