Microsoft 身分識別平台程式碼範例
Microsoft 會建置和維護這些程式碼範例,以示範如何搭配使用驗證程式庫與 Microsoft 身分識別平台。 常見的驗證和授權案例是透過數種應用程式類型、開發語言和架構所實作。
- 將使用者登入至 Web 應用程式,並將授權存取權提供給受保護 Web API。
- 要求存取權杖以保護 Web API 執行 API 作業。
每個程式碼範例都會包括 README.md 檔案,以說明如何建置專案 (如果適用) 並執行範例應用程式。 程式碼中的註解可協助您了解如何在應用程式中使用這些程式庫,以使用身分識別平台來執行驗證和授權。
範例和指南
使用索引標籤,依應用程式類型或您慣用的語言/架構來排序範例。
單頁應用程式
這些範例示範如何撰寫以 Microsoft 身分識別平台保護的單頁應用程式。 這些範例會使用其中一種 MSAL.js。
語言/ 平台 |
GitHub 上的 程式碼範例 |
驗證 程式庫 |
驗證流程 |
---|---|---|---|
Angular | • 登入使用者 • 登入使用者 (B2C) • 呼叫 Microsoft Graph • 呼叫 ASP.NET Core web API • 呼叫 ASP.NET Core web API (B2C) • 透過 OBO 呼叫 Microsoft Graph • 使用應用程式角色進行存取控制 • 使用安全性群組進行存取控制 • 部署至 Azure 儲存體和 App Service |
MSAL Angular | • 授權碼及 PKCE • 代理者 (OBO) • 持續性存取評估 (CAE) |
Blazor WebAssembly | • 登入使用者 • 登入使用者 (B2C) • 呼叫 Microsoft Graph • 部署至 Azure App Service |
MSAL.js | 隱含流程 |
JavaScript | • 登入使用者 • 登入使用者 (B2C) • 呼叫 Microsoft Graph • 呼叫 Node.js Web API • 呼叫 Node.js Web API (B2C) • 部署至 Azure 儲存體和 App Service |
MSAL.js | • 授權碼及 PKCE • |
React | • 登入使用者 • 登入使用者 (B2C) • 在伺服器端和用戶端應用程式上登入使用者 • 呼叫 Microsoft Graph • 呼叫 Azure REST API 和 Azure 儲存體 • 呼叫 Node.js Web API • 呼叫 Node.js Web API (B2C) • 透過 OBO 呼叫 Microsoft Graph • 使用應用程式角色進行存取控制 • 使用安全性群組進行存取控制 • 部署至 Azure Static Web Apps • 使用逐步驗證呼叫 Node.js Web API |
MSAL React | • 授權碼及 PKCE • 代理者 (OBO) • 條件式存取 • 條件式存取驗證內容 (acrs) • 持續性存取評估 (CAE) |
Web 應用程式
下列範例會說明登入使用者的 Web 應用程式。 部分範例也會示範呼叫 Microsoft Graph 或使用使用者身分識別呼叫您自有 Web API 的應用程式。
Web API
下列範例說明如何使用 Microsoft 身分識別平台保護 Web API,以及如何從 Web API 呼叫下游的 API。
語言/ 平台 |
GitHub 上的 程式碼範例 |
驗證 程式庫 |
驗證流程 |
---|---|---|---|
ASP.NET | 呼叫 Microsoft Graph | MSAL.NET | • 代理者 (OBO) |
ASP.NET Core | 登入使用者並呼叫 Microsoft Graph | MSAL.NET | • 代理者 (OBO) |
Java | 登入使用者 | MSAL Java | • 代理者 (OBO) |
Node.js | • 保護 Node.js Web API • 保護 Azure AD B2C 的 Node.js Web API |
MSAL 節點 | 授權持有人 |
桌面
下列範例說明公開用戶端桌面應用程式會以使用者名稱存取 Microsoft Graph API 或您自己的 Web API。 除了桌面 (主控台) 搭配 Web 驗證管理員 (WAM) 範例之外,這些用戶端應用程式都會使用 Microsoft 驗證程式庫 (MSAL)。
語言/ 平台 |
GitHub 上的 程式碼範例 |
驗證 程式庫 |
驗證流程 |
---|---|---|---|
.NET Core | • 呼叫 Microsoft Graph • 使用權杖快取呼叫 Microsoft Graph • 使用自訂 Web UI HTML 呼叫 Microsoft Graph • 使用自訂 Web 瀏覽器呼叫 Microsoft Graph • 使用裝置程式碼流程登入使用者 • 在 WinUI 傳統型應用程式中使用 MSAL.NET 驗證使用者 |
MSAL.NET | • 授權碼及 PKCE • 裝置程式碼 |
.NET | 使用整合式 Windows 驗證叫用受保護的 API | MSAL.NET | 整合式 Windows 驗證 |
Java | 呼叫 Microsoft Graph | MSAL Java | 整合式 Windows 驗證 |
Node.js | 登入使用者 | MSAL 節點 | • 授權碼及 PKCE |
.NET Core | 使用使用者名稱/密碼登入使用者以呼叫 Microsoft Graph | MSAL.NET | 資源擁有者密碼認證 |
Python | 登入使用者 | MSAL Python | 資源擁有者密碼認證 |
通用 Windows 平台 (UWP) | 呼叫 Microsoft Graph | MSAL.NET | Web 帳戶管理員 |
Windows Presentation Foundation (WPF) | 登入使用者並呼叫 Microsoft Graph | MSAL.NET | • 授權碼及 PKCE |
Windows Presentation Foundation (WPF) | 登入使用者並呼叫 ASP.NET Core Web API • 登入使用者並呼叫 Microsoft Graph |
MSAL.NET | • 授權碼及 PKCE |
行動
下列範例說明會存取 Microsoft Graph API 的公開用戶端行動應用程式。 這些用戶端應用程式都會使用 Microsoft 驗證程式庫 (MSAL)。
語言/ 平台 |
GitHub 上的 程式碼範例 |
驗證 程式庫 |
驗證流程 |
---|---|---|---|
.NET Core | • 使用 MAUI 呼叫 Microsoft Graph • 使用 MAUI 搭配訊息代理程式呼叫 Microsoft Graph • 使用 MAUI 呼叫 Active Directory B2C 租用戶 |
MSAL.NET | • 授權碼及 PKCE |
iOS | • 呼叫原生 Microsoft Graph | MSAL iOS | • 授權碼及 PKCE |
Java | 登入使用者並呼叫 Microsoft Graph | MSAL Android | • 授權碼及 PKCE |
Kotlin | 登入使用者並呼叫 Microsoft Graph | MSAL Android | • 授權碼及 PKCE |
Xamarin | • 登入使用者並呼叫 Microsoft Graph • 使用代理程式 (Broker) 登入使用者並呼叫 Microsoft Graph |
MSAL.NET | • 授權碼及 PKCE |
服務/精靈
下列範例說明如何使用其自有的身分識別 (無使用者) 存取 Microsoft Graph API 的應用程式。
語言/ 平台 |
GitHub 上的 程式碼範例 |
驗證 程式庫 |
驗證流程 |
---|---|---|---|
.NET Core | • 呼叫 Microsoft Graph • 呼叫 Web API • 使用受控識別和 Azure Key Vault |
MSAL.NET | 用戶端認證授與 |
ASP.NET | 具有 Microsoft 身分識別平台端點的多租用戶 | MSAL.NET | 用戶端認證授與 |
Java | • 使用祕密呼叫 Microsoft Graph • 使用憑證呼叫 Microsoft Graph |
MSAL Java | 用戶端認證授與 |
Node.js | 使用祕密呼叫 Microsoft Graph | MSAL 節點 | 用戶端認證授與 |
Python | • 使用秘密呼叫 Microsoft Graph • 使用憑證呼叫 Microsoft Graph |
MSAL Python | 用戶端認證授與 |
Azure Functions 即 Web API
下列範例說明如何使用 HttpTrigger 保護 Azure 函式,並使用 Microsoft 身分識別平台公開 Web API,以及如何從 Web API 呼叫下游的 API。
語言/ 平台 |
GitHub 上的 程式碼範例 |
驗證 程式庫 |
驗證流程 |
---|---|---|---|
.NET | 受 Microsoft Entra ID 保護的 .NET Azure 函式 Web API | MSAL.NET | 授權碼 |
Python | 受 Microsoft Entra ID 保護的 Python Azure 函式 Web API | MSAL Python | 授權碼 |
無瀏覽器 (無周邊)
下列範例示範在裝置 (沒有網頁瀏覽器) 上執行的公開用戶端應用程式。 此應用程式可以是命令列工具,或是在 Linux 或 Mac 上執行的應用程式,或者是 IoT 應用程式。 範例應用程式會以使用者 (可以互動式方式登入另一部裝置,例如行動電話) 的名稱存取 Microsoft Graph API。 此用戶端應用程式會使用 MicroSoft 驗證程式庫 (MSAL)。
語言/ 平台 |
GitHub 上的 程式碼範例 |
驗證 程式庫 |
驗證流程 |
---|---|---|---|
.NET Core | 從純文字裝置叫用受保護的 API | MSAL.NET | 裝置代碼 |
Java | 登入使用者並從純文字裝置叫用受保護的 API | MSAL Java | 裝置代碼 |
Python | 呼叫 Microsoft Graph | MSAL Python | 裝置代碼 |
Microsoft Teams 應用程式
下列範例說明可登入使用者的 Microsoft Teams Tab 應用程式。 此外,還會示範如何搭配使用使用者身分識別與 Microsoft 驗證程式庫 (MSAL) 來呼叫 Microsoft Graph API。
語言/ 平台 |
GitHub 上的 程式碼範例 |
驗證 程式庫 |
驗證流程 |
---|---|---|---|
Node.js | Teams Tab 應用程式:單一登入 (SSO) 並呼叫 Microsoft Graph | MSAL 節點 | • 代理者 (OBO) |
多租用戶 SaaS
下列範例示範如何設定應用程式以接受來自任何 Microsoft Entra 租用戶的登入。 將應用程式設定為多租用戶表示您可以提供軟體即服務 (SaaS) 應用程式給許多組織,讓其使用者能夠在提供同意之後,登入您的應用程式。
語言/ 平台 |
GitHub 上的 程式碼範例 |
驗證 程式庫 |
驗證流程 |
---|---|---|---|
ASP.NET Core | ASP.NET Core MVC Web 應用程式呼叫 Microsoft Graph API | MSAL.NET | OpenID Connect |
ASP.NET Core | ASP.NET Core MVC web 應用程式呼叫 ASP.NET Core web API | MSAL.NET | 授權碼 |
Angular | Angular 單頁應用程式呼叫 ASP.NET Core Web API | MSAL Angular | 授權碼 |
下一步
如果您想要深入探索更多範例程式碼,請參閱:
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: