驗證案例和建議
如果您有在 Azure App 服務 中執行的 Web 應用程式或 API,您可以根據要求 Web 應用程式的使用者或應用程式身分識別來限制存取它。 App Service 提供數個驗證解決方案,可協助您達成此目標。 在本文中,您將瞭解不同的驗證選項、其優點和缺點,以及要用於特定案例的驗證解決方案。
驗證解決方案
- Azure App 服務 內建驗證 - 可讓您在 Web 應用程式、RESTful API 或行動後端中撰寫最少或無程式代碼來登入和存取數據。 它直接內建於平臺中,不需要任何特定的語言、連結庫、安全性專業知識,甚至是任何要使用的程序代碼。
- Microsoft 驗證連結庫 (MSAL) - 可讓開發人員從 Microsoft 身分識別平台 取得安全性令牌,以驗證使用者並存取受保護的 Web API。 這些適用於多個支援的平臺和架構,這些是可用於各種裝載環境的一般用途連結庫。 開發人員也可以與多個登入提供者整合,例如 Microsoft Entra、Facebook、Google、Twitter。
- Microsoft.Identity.Web - 高階連結庫會包裝 MSAL.NET,它提供一組 ASP.NET 核心抽象概念,可簡化將驗證支援新增至 web 應用程式和 Web API 與 Microsoft 身分識別平台 整合。 它提供單一介面 API 便利層,可系結 ASP.NET Core、其驗證中間件,以及 MSAL.NET。 此連結庫可用於各種託管環境中的應用程式。 您可以與多個登入提供者整合,例如 Microsoft Entra、Facebook、Google、Twitter。
案例建議
下表列出每個驗證解決方案,以及當您使用時的重要因素。
驗證方法 | 使用時機 |
---|---|
內建 App Service 驗證 | * 您希望較少的程式代碼擁有和管理。 * 您的應用程式語言和 SDK 不提供使用者登入或授權。 * 您無法修改應用程式程式代碼(例如,在移轉舊版應用程式時)。 * 您必須透過組態處理驗證,而不是程式碼。 * 您必須登入外部或社交使用者。 |
Microsoft Authentication Library (MSAL) | * 您需要數種不同語言之一的程式代碼解決方案 * 您需要新增自訂授權邏輯。 * 您需要支援累加同意。 * 您需要程式碼中已登入使用者的相關信息。 * 您必須登入外部或社交使用者。 * 您的應用程式必須處理存取令牌過期,而不讓使用者再次登入。 |
Microsoft.Identity.Web | * 您有 ASP.NET Core 應用程式。 * 在本機開發期間,您需要 IDE 中的單一登錄支援。 * 您需要新增自訂授權邏輯。 * 您需要支援累加同意。 * 您需要 Web 應用程式中的條件式存取。 * 您需要程式碼中已登入使用者的相關信息。 * 您必須登入外部或社交使用者。 * 您的應用程式必須處理存取令牌過期,而不讓使用者再次登入。 |
下表列出您將使用的驗證案例和驗證解決方案。
案例 | App Service 內建驗證 | Microsoft 驗證資源庫 | Microsoft.Identity.Web |
---|---|---|---|
需要快速且簡單的方法來限制組織中使用者的存取權? | ✅ | ❌ | ❌ |
無法修改應用程式程式代碼 (應用程式移轉案例)? | ✅ | ❌ | ❌ |
您的應用程式的語言和連結庫支援使用者登入/授權? | ❌ | ✅ | ✅ |
即使您可以使用程式代碼解決方案,您寧願 不使用 連結庫嗎? 不想要維護負擔嗎? | ✅ | ❌ | ❌ |
您的 Web 應用程式是否需要提供累加式同意? | ❌ | ✅ | ✅ |
您需要 Web 應用程式中的條件式存取嗎? | ❌ | ❌ | ✅ |
您的應用程式需要處理存取令牌過期,而不讓使用者再次登入 (使用重新整理令牌)? | ✅ | ✅ | ✅ |
需要自定義授權邏輯或登入使用者的相關信息嗎? | ❌ | ✅ | ✅ |
需要從外部或社交識別提供者登入使用者嗎? | ✅ | ✅ | ✅ |
您有 ASP.NET Core 應用程式? | ✅ | ❌ | ✅ |
您有單頁應用程式或靜態 Web 應用程式? | ✅ | ✅ | ✅ |
想要 Visual Studio 整合嗎? | ❌ | ❌ | ✅ |
在本機開發期間,您的 IDE 需要單一登錄支援嗎? | ❌ | ❌ | ✅ |
下一步
若要開始使用內建 App Service 驗證,請閱讀:
若要開始使用 Microsoft 驗證連結庫 (MSAL),請閱讀:
若要開始使用 Microsoft.Identity.Web,請閱讀:
深入瞭解 App Service 內建驗證和授權
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應