2015-09-28 100 views
3

我在OWIN/web API/AngularJS應用程序中使用OAuth承載令牌認證流程。Owin WebAPI承載令牌通過

我想要做的是重新使用在服務器上承載的令牌,並把它傳遞給第2個網絡API服務(這也是由承載令牌保護,並使用相同的計算機密鑰的另一臺服務器上的其他服務)。我知道如何在C#中創建一個不記名令牌,並使用HTTPClient將它添加到請求的頭部 - 但是,如何才能使用我已有的不記名令牌(由瀏覽器請求傳入)呢?這可能嗎?

回答

1

從技術上講,這是可能的,但很少是一個好主意。你通常不會傳遞它,因爲這會讓你的後端API在中間攻擊中暴露給人。在規範方法中,您將使用您收到的訪問令牌返回權限並請求一個新的令牌,這次將限制在您的後端。一個例子見https://github.com/Azure-Samples/active-directory-dotnet-webapi-onbehalfof

+0

謝謝vibronet。這種方法是否意味着每次訪問後端API時都會從權限獲取新令牌,或者是否存儲後端令牌並重用它 - 我可以看到每種方法的優缺點?目前令牌在瀏覽器上本地緩存並重新使用。 – thevongole

+0

在我鏈接的示例中,生成的標記被高速緩存。您可以選擇將其緩存在服務器端或將其放置在受保護的Cookie /會話中 - 或者,如果您很少執行呼叫,則甚至可能根本無法緩存它(儘管這在我的經驗中並不常見)。 – vibronet