2013-04-22 65 views
2

我使用ASP.net的Web API實現的API,我試圖找到我的方案進行驗證適當的替代品,其計算方法如下:ASPNET的Web API認證

  • 的API應該可以從移動客戶端訪問
  • 移動客戶端用戶不應該登錄,客戶端是本機應用程序
  • 該API由設備ID和用戶ID組成的憑證進行授權,該憑證以其他方式在應用程序中獲得,存儲在sql數據庫中的有效憑證
  • 客戶端不應存儲靜態憑據
  • 的API管理敏感數據,應該是安全的

所以我探討一些選擇,我已經發現,通過SSL進行基本的身份驗證就足夠了,但有些人說這可能是不夠的,基於索賠的解決方案會。

然後我探索了Azure ACS,我發現它有一些優點,但是對我的場景來說可能過於複雜?我仍然應該創建一個身份提供者,如基本身份驗證。樣品流程(第二種方法):http://msdn.microsoft.com/en-us/library/gg429784.aspx

您怎麼看?

感謝

UPDATE:

我一直在思考如何使用DotNetOpenOauth的實施和使用資源所有者口令授予這樣我就可以使用該設備ID和用戶ID的第一時間拿到訪問令牌沒有存儲憑據,服務器可以根據設備調用它來授權調用者,這是正確的嗎?

回答

2

在VS 2013,你可以使用「ASP MVC SPA申請」模板來生成一個工作的實現,是產生在登錄時的OAuth2令牌承載和使用授權它的WebAPI控制器調用[授權]屬性。它使用成員資格和實體框架在SQL Server本地存儲用戶和散列。只需刪除您不需要的asp mvc部分,並保留WebApi的Auth部分即可。 更多細節在這裏: http://msdnrss.thecoderblogs.com/2013/09/understanding-security-features-in-the-spa-template-for-vs2013-rc/