簡體   English   中英

如何使用 Azure AD 保護需要由 3rd 方應用程序訪問的 API?

[英]How to use Azure AD to secure an API that needs to be accessed by a 3rd party application?

我們正在運行一個為 Azure AD 配置和保護的 API。 這適用於我們的 Angular 應用程序,用戶可以在該應用程序中以交互方式登錄。 現在我們需要合作伙伴公司以系統到系統的方式使用 API(無需用戶登錄)。

需要為他們的應用程序配置哪些內容才能從 Azure AD 獲取我們的 API 的 OAuth 令牌?

我已經檢查了service to service call flow ,但我想知道在我們的租戶中為我們不擁有/管理的應用程序創建應用程序注冊是否是最佳實踐。 然而,這似乎是為他們提供客戶端 ID/秘密以便他們與 Azure AD 交互的最快方式。

提前致謝! -道格

  • Azure Active Directory 也支持 OAuth 2.0 來授權第三方應用程序。 Web API 的托管位置實際上並不重要。您甚至可以在第三方應用程序上查看Azure Active Directory 推薦 它實際上增加了安全性,並且可以集成不同類型的應用程序。
  • 但是您需要讓您的 Web 應用程序向 Azure AD 進行身份驗證,並將令牌提供給 Web api。因此它需要應用程序注冊。
  • 外部web應用調用web api的場景,可以參考: web-app-call-api
  • 您的應用程序可以獲取令牌以代表自己(而不是代表用戶)調用 Web API,即; 您可以實現非交互式應用程序調用 Web api 的場景

但是,如果您的意思是應用程序使用另一個 api 調用合作伙伴 api。 當您使用 MSAL(Azure AD V2.0 端點)將 Web API 與第三方應用程序集成時,Azure AD V2.0 不支持合作伙伴 API(請參閱服務和 API 的限制)。

一種方法是使用代表流程 此處第三方應用程序最初獲取訪問令牌以調用 Web API。 此 Web API 獲取合作伙伴中心 API 的令牌,並使用該令牌代表流調用它。 此解決方案使用 Azure AD 端點而不是 v2.0(在 Azure 門戶上注冊應用程序)。

其他參考:

  1. asp.net web api - Azure Active Directory 在 Azure 之外的 Web Api 中驗證訪問令牌 - 代碼日志
  2. 身份驗證與授權

暫無
暫無

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

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