2017-01-03 78 views
1

我們在ASP.NET MVC中擁有自己的現有門戶網站,現在我們的一個客戶不想將我們的門戶作爲單獨的工具使用,而是希望通過我們的功能WEB API並將其消耗在他們身邊。爲Web API選擇最佳身份驗證和授權選項

現在我想在web API中實現認證和授權,我沒有谷歌找到我的問題的答案,但沒有得到它。

我在以下幾點感到困惑。

  1. OWIN是Microsoft提供的默認實現的最佳選擇嗎?或者一些自定義實現?

  2. 在安全性方面使用OWIN有什麼優勢和劣勢?

  3. 何時使用JWT(Json Web令牌)和OWIN?

  4. 或其他任何有助於創建更安全的Web API的實現?

尋找所有專家的寶貴意見,以幫助我決定。

回答

1

我實現了類似的東西。這就是我們的工作方式:我們有我們的應用程序(MVC應用程序),它允許我們登錄。登錄使用一個單獨的mvc項目(我們的STS)來處理所有的用戶驗證。當我們的登錄名和密碼發佈正確時,我們會生成一個返回到MVC應用程序的JWT。回到應用程序端,我們解碼我們的令牌並在其中構建一個asp.net應用程序cookie中的聲明。 我們也有一個單獨的項目,包含我們的WebApi REST方法。這些只能使用我們的STS生成的JWT調用。我們使用自定義屬性詳細闡述了這一點,以便我們可以設置令牌中特定權限或角色聲明的權限。

爲了創建這一切,我被扶非常使用這些系列文章:http://bitoftech.net/2014/10/27/json-web-token-asp-net-web-api-2-jwt-owin-authorization-server/

從結構上看,這是在我看來,「應該如何」,但我不是這方面的專家。

所以總結:

  • Web應用程序 - 應用cookie來認證/授權

  • 調用的WebAPI其餘部分的方法 - 使用JWT認證/授權

  • 獨立STS這需要在POSTS認證並生成JWT