簡體   English   中英

瀏覽器和Web服務器api身份驗證令牌

[英]Browser and Webserver api authentication tokens

我目前正在研究一個包含多租戶webApi的解決方案,它將由多個客戶端訪問,其中一些我將創建,另一些將創建。 可以通過ApiKey和Secret(足夠用於某些資源)以及用戶名和密碼(用於所有者資源)訪問api。

目前,我創建的客戶端(.Net MVC Web應用程序)具有其自己的成員資格系統,因此發生的情況是客戶端的用戶登錄到客戶端系統,並且客戶端系統將登錄信息傳遞給Api以檢索身份驗證令牌。

客戶成員資格系統實際上是不需要的抽象。 我真正想做的是讓用戶直接登錄到api,並且api傳遞回可以從瀏覽器以及.Net MVC客戶端應用程序使用的身份驗證令牌。

我的問題是,實現這一目標的最佳方法是什么? 在我看來,我似乎正在努力解決2種解決方案。

1)有一個基於瀏覽器的登錄(例如ajax / AngularJS)解決方案,該解決方案調用api檢索令牌,然后將該令牌傳遞到將存儲令牌的MVC客戶端(可能是會話變量)。 .Net MVC客戶端將來對api的任何調用都可以傳遞令牌。 不過,這對我來說似乎是錯誤的。 我什至不確定這是可能的。

2)利用OAuth流程之一,以便基於瀏覽器的登錄名可以調用API並檢索令牌,然后OAuth流程重定向到MVC客戶端,該客戶端再將該用戶的令牌存儲在會話變量中。

Api是使用Owin本地帳戶使用VS2013 WebApi模板生成的,並且正在通過ValidateClientCredentials和ValidateResourceOwnerCredentials流生成令牌,但是對於這種情況,我認為我需要使用其他OAuth流之一。

我知道另一種解決方案是繞過.Net MVC客戶端代碼,並使用敲除或AngluarJS創建一個完全基於瀏覽器的解決方案,但這是一個非常復雜的系統,目前我真的沒有時間這樣做,所以我尋找一種解決方案,使我可以從api中檢索令牌,該令牌可以在.Net MVC客戶端中使用,也可以從瀏覽器中進行ajax調用。

任何想法,建議將不勝感激。

提前致謝。 賈斯汀

如果您將Azure AD用作憑據存儲和身份驗證系統,則可以利用現成的JS庫來自動處理身份驗證,AJAX調用和會話管理問題:請參閱http://www.cloudidentity。 com / blog / 2014/10/28 / adal-javascript-and-angularjs-deep-dive / 如果您不能依賴Azure AD,則上述庫和示例代碼仍然可以作為構建自己的系統的參考,前提是您決定使用的身份驗證系統提供類似的功能。 HTHV。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM