驗證案例和建議
如果您有在 Azure App Service 中執行的 Web 應用程式或 API,您可以根據要求這些項目的使用者或應用程式身分識別來限制存取。 App Service 提供數個驗證解決方案,可協助您達成此目標。 在本文中,您將會了解不同的驗證選項、其優點和缺點,以及哪個驗證解決方案用於特定案例。
驗證解決方案
- Azure App Service 內建驗證 - 可讓您藉由在 Web 應用程式、RESTful API 或行動裝置後端中寫入最少程式碼或不寫入程式碼,登入使用者並存取資料。 其直接內建於平台,不需任何特定的語言、程式庫、安全性專業知識,甚至任何程式碼,即可使用。
- Microsoft 驗證程式庫 (MSAL) - 可讓開發人員從 Microsoft 身分識別平台取得安全性權杖,以驗證使用者及存取受保護的 Web API。 適用於多個支援的平台和架構,這些是可用於各種裝載環境的一般用途程式庫。 開發人員也可以與多個登入提供者整合,例如 Microsoft Entra、Facebook、Google、X。
- Microsoft.Identity.Web - 較高層級程式庫包裝 MSAL.NET,提供一組 ASP.NET Core 抽象概念,簡化將驗證支援新增至 Web 應用程式和 Web API (與 Microsoft 身分識別平台整合)。 提供單一介面 API 便利層,將 ASP.NET Core、其驗證中介軟體及 MSAL.NET 結合在一起。 此程式庫可用於各種裝載環境中的應用程式。 您可以與多個登入提供者整合,例如 Microsoft Entra、Facebook、Google、X。
案例建議
下表列出每個驗證解決方案,以及使用時機的重要因素。
驗證方法 | 使用時機 |
---|---|
內建 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 內建驗證和授權