2017-05-03 46 views
0

這是很主觀的問題,我搜索不同的地方,但我想知道怎樣的WebAPI認證工作WebApi身份驗證如何適用於所有客戶端?

我在前端使用AngularJS應用的現實世界的例子和現在,我必須連接到的WebAPI,但有各種各樣的客戶端那麼,什麼是客戶端將通過WEBAPI進行身份驗證的方式

+0

使用承載令牌。 – rawel

+0

感謝rawel,但客戶可以在任何他們只是訪問URL的地方所以,webapi如何進行身份驗證。如果您可以給我任何鏈接或引用,它將是偉大的 –

+0

http://bitoftech.net/2014/06/01/token基於身份驗證的ASP網絡萬維網-pi-2-owin-asp-net-identity/ – rawel

回答

0

您將配置一個應用程序充當令牌發行者,負責創建特定客戶端允許的JWT令牌。

這是一個.Net示例,它是Identity Server(https://github.com/IdentityServer/IdentityServer3)。它有很多示例向您展示了它如何與不同的客戶端類型配合使用(https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source/Clients

您可以在Identity Server中定義由客戶端ID,授權類型和「重定向URL」表示的客戶端。 Identity Server充當單點登錄,因此,當您的應用程序需要訪問API時,您將使用OpenID connect重定向到Identity Server。在成功登錄後,Identity Server將重定向回您爲客戶端ID註冊的「重定向URL」,並將哈希碎片上的客戶端發送access_token返回給客戶端

存在一個庫來幫助單頁應用程序, OIDC-client。獲得訪問令牌後,您可以使用授權標頭將其發送到您的Web API。

授權:{承載的-JWT令牌}

的API將利用現有的NuGet包之一來實現這一固定using JWT Bearer authentication。該API負責確保發送給它的JWT令牌由預期的令牌頒發者簽署,適用於相關的受衆並由正確的授權機構頒發。

如果JWT驗證通過,那麼驗證已成功,您可以根據令牌中存在的聲明做出授權決定。

這就是基本概念 - 從頒發者獲取令牌,使用Authorization頭髮送HTTP請求,使用JWT身份驗證鎖定您的API。

您可以運行自己的令牌頒發者(如Identity Server),也可以使用類似Azure AAD的類來爲您提供此功能。使用AAD啓動並運行非常簡單。

+0

謝謝迪倫,提供這種解決方案 –