分享方式:


Microsoft 身分識別平台程式碼範例

Microsoft 會建置和維護這些程式碼範例,以示範如何搭配使用驗證程式庫與 Microsoft 身分識別平台。 常見的驗證和授權案例是透過數種應用程式類型、開發語言和架構所實作。

  • 將使用者登入至 Web 應用程式,並將授權存取權提供給受保護 Web API。
  • 要求存取權杖以保護 Web API 執行 API 作業。

每個程式碼範例都會包括 README.md 檔案,以說明如何建置專案 (如果適用) 並執行範例應用程式。 程式碼中的註解可協助您了解如何在應用程式中使用這些程式庫,以使用身分識別平台來執行驗證和授權。

範例和指南

使用索引標籤,依應用程式類型或您慣用的語言/架構來排序範例。

單頁應用程式

這些範例示範如何撰寫以 Microsoft 身分識別平台保護的單頁應用程式。 這些範例會使用其中一種 MSAL.js。

Web 應用程式

下列範例會說明登入使用者的 Web 應用程式。 部分範例也會示範呼叫 Microsoft Graph 或使用使用者身分識別呼叫您自有 Web API 的應用程式。

語言/
平台
GitHub 上的
程式碼範例
驗證
程式庫
驗證流程
ASP.NET Core ASP.NET Core 系列
登入使用者
登入使用者 (B2C)
呼叫 Microsoft Graph
自訂權杖快取
呼叫 Graph (多租用戶)
呼叫 Azure REST API
保護 Web API
保護 Web API (B2C)
保護多租用戶 Web API
使用應用程式角色進行存取控制
使用安全性群組進行存取控制
部署至 Azure 儲存體和 App Service
Microsoft.Identity.Web • OpenID Connect
• 授權碼
• 代理者
Blazor Blazor Server 系列
登入使用者
登入使用者 (B2C)
呼叫 Microsoft Graph
呼叫 Web API
呼叫 Web API (B2C)
MSAL.NET 混合式流程
ASP.NET Core 進階權杖快取 Microsoft.Identity.Web • 代理者 (OBO)
ASP.NET Core 使用條件式存取驗證內容來執行升級驗證 Microsoft.Identity.Web 授權碼
ASP.NET Core Microsoft Entra 移轉的 Active Directory 同盟服務 MSAL.NET • SAML
• OpenID Connect
ASP.NET Microsoft Graph 訓練範例
登入使用者並呼叫 Microsoft Graph
登入使用者並呼叫系統管理員限制範圍的 Microsoft Graph
快速入門:登入使用者
MSAL.NET • OpenID Connect
• 授權碼
Java

Spring
Microsoft Entra Spring Boot Starter 系列
登入使用者
登入使用者 (B2C)
呼叫 Microsoft Graph
使用應用程式角色進行存取控制
使用群組進行存取控制
部署至 Azure App Service
保護 Web API
MSAL Java
• Microsoft Entra ID Boot Starter
授權碼
Java

Servlet
Spring-less Servlet 系列
登入使用者
登入使用者 (B2C)
呼叫 Microsoft Graph
使用應用程式角色進行存取控制
使用安全性群組進行存取控制
部署至 Azure App Service
MSAL Java 授權碼
Node.js

Express \(英文\)
Express Web 應用程式系列
快速入門:登入使用者
登入使用者
登入使用者 (B2C)
呼叫 Microsoft Graph
透過 BFF Proxy 呼叫 Microsoft Graph
部署至 Azure App Service
使用應用程式角色進行存取控制
使用安全性群組進行存取控制
MSAL 節點 • 授權碼
• Backend-for-Frontend (BFF) proxy
Python

Flask
Flask 系列
登入使用者
登入使用者 (B2C)
用來登入 Microsoft Entra ID 或 B2C 使用者的範本,並選擇性地呼叫下游 API (Microsoft Graph)
呼叫 Microsoft Graph
部署至 Azure App Service
MSAL Python 授權碼
Python

Django
Django 系列
登入使用者
登入使用者 (B2C)
呼叫 Microsoft Graph
部署至 Azure App Service
MSAL Python 授權碼
Ruby Graph 訓練
登入使用者並呼叫 Microsoft Graph
OmniAuth OAuth2 授權碼

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)。

服務/精靈

下列範例說明如何使用其自有的身分識別 (無使用者) 存取 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 授權碼

下一步

如果您想要深入探索更多範例程式碼,請參閱: