2014-01-16 39 views
1

我WebApi1應用我有一個MVC4應用和使用即時通訊的WebAPI 1將其暴露在其他應用程序。我想用oauth2來保護它。請任何人提供足夠的教程使用oauth2安全使用的oauth2

我的要求是,我需要提供一些身份驗證頭,當我的客戶端應用程序請求時(在登錄之後)以及請求任何數據時,我需要檢查並驗證身份驗證頭並僅基於結果我的應用程序可以提供數據作爲響應。

有人請給我看一個詳細的例子,幫助我使用oauth2來安全地使我的MVC應用程序安全。

編輯:我有資源服務器(我的MVC4 webApi1應用程序)。其實我需要的是,我有使用的oauth2讓我的應用程序作爲身份提供服務提供商)(其中一個提供授權令牌和當客戶端應用程序試圖訪問它驗證)。

回答

0

這個例子太長了,不能把它帶到這裏,我會着重討論主要步驟,所有缺少的細節都在Pro ASP.NET Web API安全性書中。

http://www.amazon.com/Pro-ASP-NET-Web-API-Security/dp/1430257822

命名約定:

  • 身份提供 - 可以驗證用戶的應用
  • 資源服務器 - 應用程序暴露出的WebAPI服務(可以是相同身份提供商)
  • 客戶端應用程序 - 想要調用Web API
  • 資源所有者應用 - 誰使用的客戶端應用程序

啓動用戶,你需要決定你想實現什麼類型的oauth2的流動。

  • authorization_code - 最終用戶將通過身份服務器使用他們的網絡瀏覽器登錄到客戶端應用程序。身份服務器公開客戶端應用程序用來獲取訪問令牌的令牌端點。使用訪問令牌時,客戶端應用程序將調用資源服務器,其中WebAPI受OAuth2保護。
  • 用戶名密碼 - 客戶端應用程序知道用戶名和密碼(而不是要求身份服務器對用戶進行身份驗證),並可以交換在身份服務器訪問令牌
  • client_credentials - 沒有最終用戶,只需在客戶端應用程序調用代表自身

所有流程結束了其訪問令牌中的客戶端應用程序的一些網頁API。訪問令牌然後傳遞到頭中,並且資源服務器端的WebAPI受到自定義認證屬性的保護,該屬性根據頭中發送的信息設置當前請求的主體。

有很多細節,但幸運的是,本書有一個使用DotNetOpenAuth庫的完整示例。你應該能夠遵循這個例子。

+0

請任何人提供一些免費的教程,這有助於做到這一點。 – Sudha

+0

DotnetOpenAuth是免費的,有免費的文檔和免費的例子。 –