0

我現在標題到什麼對我來說是一個未知的領域......API Secutiry與AngularJs SPA

我想要做的是保護我的Azure的API。而且我希望我的應用程序能夠「與之通話」。

所以我已經固定我什麼Azure的AD認證已經給我們的應用程序......我也跟着下面這個方法:

指南: Securing AngularJS Single Page Apps with Azure AD

視頻: AngularJS Module for Microsoft Azure Active Directory Authentication

而且我不知道如何讓它與我的API協同工作,或者如何確保它與Angularjs SPA Azure AD認證的對接。

所以我不是一個完整的指南之後,或者我真的想要了解這一點。 事情是我什至不知道從哪裏開始拉的踩踏可言。

任何人都知道任何好的指針或有一個我應該看看的步驟列表,也可能是按照至少這樣的順序。

任何東西將不勝感激!

在此先感謝 - 約翰

----------------------編輯/後續---------- --------------

好吧,所以我設法保護我的API並將客戶端和api連接到舊門戶中的相同天青AD。

API和客戶端現在均已啓用SSL,因此他們使用https協議。

當我嘗試通過郵遞員從api獲取聯繫人列表時,我得到「消息」:「授權已被拒絕此請求。」

這是什麼感覺,因爲它應該。

但是,當我通過angularjs SPA客戶端嘗試GET功能,我收到了狀態碼500

$scope.fillTable = function() { 
 
     $http.get('https://localhost:44338/api/Contacts').success(function (data) { 
 
      var peopleList = data; 
 
      $scope.contactList = peopleList; 
 
     }) 
 
    }

出於某種原因,我的授權密鑰甚至沒有在頭因爲它應該是因爲adal.js,如文檔中所述。

因此,當我登錄時,我也獲得了身份驗證密鑰,並且如果我只是在獲取funsction中放置「api/Contacts」。沒有這個地址的其餘部分。

但我沒有運行get函數,因爲它應該是。

Authentication with initial load - auth token existing

Auth after using get fucntion with full url - auth token non existing

Auth after using get function with half the url - auth token existing

是否都API和客戶端必須在這個同樣的解決方案正常工作?因爲我已經修復了CORS,並且還在清單中將oauth2AllowImplicitFLow設置爲true,並且還在azure廣告中展開了過多的數據。

我跟着結合這些指南與上面的那些:

Protect a Web API using Bearer tokens from Azure AD

Integrating Azure AD into an AngularJS single page app

Enabling Cross-Origin Requests in ASP.NET Web API 2

+0

你用什麼來驗證,opendId連接? – Bonomi

回答

0

一般來說,Azure的AD是微軟基於雲計算的目錄和身份管理服務。通常,試圖請求受Azure AD保護的資源(API等)的用戶需要遵循OAuth 2.0身份驗證盛大流程來實現來自Azure AD的訪問令牌。然後在HTTP請求的Authorization標頭中針對資源設置標記。

對於一般的理解如何在Azure的應用服務認證和授權的工作,你可以參考https://docs.microsoft.com/en-us/azure/app-service/app-service-authentication-overview?toc=%2fazure%2fapp-service-web%2ftoc.json

你的情況下,使用Azure的AD和OAuth 2.0已隱含授權許可,以確保其網絡API後端。您可以參考https://docs.microsoft.com/en-us/azure/active-directory/active-directory-authentication-scenarios?toc=%2fazure%2factive-directory%2fdevelop%2ftoc.json#single-page-application-spa瞭解整個工作流程。 js SDK adal實現了這些功能,可幫助您使用Azure AD在單頁面應用程序中處理身份驗證。

在瞭解Azure AD主題的這些基礎知識後,我認爲您將進一步瞭解Azure AD如何保護您的後端Web API以及您的客戶端應用程序如何授權給您的安全Web API。

任何進一步的關注,請隨時讓我知道。

+0

感謝您的指導!我一定會仔細看看這個。謝謝 – John

+0

好的,所以我對安全性的追求有了進一步的發展。如果您可以閱讀上面第一篇文章的編輯,我將不勝感激。 在此先感謝! :) – John

+0

正如你有一個500響應,這意味着你的後端服務器API有什麼問題。如果這是一個授權問題,它應該是一個401/403問題。 –