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

Microsoft 會建置及維護這些程式碼範例,以示範使用我們的驗證連結庫與 Microsoft 身分識別平台。 常見的驗證和授權案例是在數 種應用程式類型、開發語言和架構中實作。

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

每個程式代碼範例都包含一個 README.md 檔案,描述如何建置專案(如果適用),並執行範例應用程式。 程序代碼中的批註可協助您了解這些連結庫在應用程式中如何使用身分識別平臺來執行驗證和授權。

範例和指南

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

單頁應用程式

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

Web 應用程式

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

語言/
平台
程式代碼範例(s)
在 GitHub 上
驗證
程式庫
驗證流程
ASP.NET Core ASP.NET 核心系列
登入使用者
登入使用者 (B2C)
呼叫 Microsoft Graph
自定義令牌快取
呼叫 Graph (多租使用者)
呼叫 Azure REST API
保護 Web API
保護 Web API (B2C)
保護多租使用者 Web API
使用應用程式角色進行訪問控制
使用安全組進行訪問控制
部署至 Azure 儲存體 和 App Service
Microsoft.Identity.Web • OpenID 連線
• 授權碼
• 代理者
Blazor Blazor 伺服器系列
登入使用者
登入使用者 (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 Active Directory 同盟服務 至 Microsoft Entra 移轉 MSAL.NET •Saml
• OpenID 連線
ASP.NET Microsoft Graph 訓練範例
登入使用者並呼叫 Microsoft Graph
使用系統管理員限制範圍登入使用者並呼叫 Microsoft Graph
快速入門:登入使用者
MSAL.NET • OpenID 連線
• 授權碼
Java

Spring
Microsoft Entra Spring Boot 入門系列
登入使用者
登入使用者 (B2C)
呼叫 Microsoft Graph
使用應用程式角色進行訪問控制
使用群組進行訪問控制
部署至 Azure App 服務
保護 Web API
MSAL Java
• Microsoft Entra ID 開機入門版
授權碼
Java

Servlet
無 Spring-Servlet 系列
登入使用者
登入使用者 (B2C)
呼叫 Microsoft Graph
使用應用程式角色進行訪問控制
使用安全組進行訪問控制
部署至 Azure App 服務
MSAL Java 授權碼
Node.js

Express
Express Web 應用程式系列
快速入門:登入使用者
登入使用者
登入使用者 (B2C)
呼叫 Microsoft Graph
透過 BFF Proxy 呼叫 Microsoft Graph
部署至 Azure App 服務
使用應用程式角色進行訪問控制
使用安全組進行訪問控制
MSAL 節點 • 授權碼
• 後端 for-Frontend (BFF) Proxy
Python

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

Django
Django 系列
登入使用者
登入使用者 (B2C)
呼叫 Microsoft Graph
部署至 Azure App 服務
MSAL Python 授權碼
Ruby 圖形定型
登入使用者並呼叫 Microsoft Graph
OmniAuth OAuth2 授權碼

Web API

下列範例示範如何使用 Microsoft 身分識別平台 保護 Web API,以及如何從 Web API 呼叫下游 API。

語言/
平台
程式代碼範例(s)
在 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)。

語言/
平台
程式代碼範例(s)
在 GitHub 上
驗證
程式庫
驗證流程
.NET Core 呼叫 Microsoft Graph
使用令牌快取呼叫 Microsoft Graph
使用自定義 Web UI HTML 呼叫 Microsoft Graph
使用自定義網頁瀏覽器呼叫 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 資源擁有者密碼認證
通用視窗平臺 (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)。

語言/
平台
程式代碼範例(s)
在 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
使用訊息代理程式登入使用者並呼叫 Microsoft Graph
MSAL.NET 使用 PKCE 的授權碼

服務 / 精靈

下列範例顯示應用程式,該應用程式會以自己的身分識別存取 Microsoft Graph API(沒有使用者)。

語言/
平台
程式代碼範例(s)
在 GitHub 上
驗證
程式庫
驗證流程
.NET Core 呼叫 Microsoft Graph
呼叫 Web API
使用受控識別和 Azure 金鑰保存庫
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。

語言/
平台
程式代碼範例(s)
在 GitHub 上
驗證
程式庫
驗證流程
.NET 受 Microsoft Entra ID 保護的 .NET Azure 函式 Web API MSAL.NET 授權碼
Python 由 Microsoft Entra 識別符保護的 Python Azure 函式 Web API MSAL Python 授權碼

沒有瀏覽器 (無頭)

下列範例顯示在沒有網頁瀏覽器的裝置上執行的公用用戶端應用程式。 應用程式可以是命令行工具、在 Linux 或 Mac 上執行的應用程式,或 IoT 應用程式。 此範例會以另一部裝置上互動方式登入的用戶名稱(例如行動電話)來提供應用程式存取 Microsoft Graph API 的功能。 此用戶端應用程式會使用 Microsoft 驗證連結庫 (MSAL)。

語言/
平台
程式代碼範例(s)
在 GitHub 上
驗證
程式庫
驗證流程
.NET Core 從純文本裝置叫用受保護的 API MSAL.NET 裝置代碼
Java 從純文本裝置登入使用者並叫用受保護的 API MSAL Java 裝置代碼
Python 呼叫 Microsoft Graph MSAL Python 裝置代碼

Microsoft Teams 應用程式

下列範例說明登入使用者的 Microsoft Teams 索引標籤應用程式。 此外,它示範如何使用 Microsoft 驗證連結庫 (MSAL) 以使用者的身分識別呼叫 Microsoft Graph API。

語言/
平台
程式代碼範例(s)
在 GitHub 上
驗證
程式庫
驗證流程
Node.js Teams 索引標籤應用程式:單一登錄 (SSO) 並呼叫 Microsoft Graph MSAL 節點 代表 (OBO)

多租用戶 SaaS

下列範例示範如何設定您的應用程式以接受來自任何 Microsoft Entra 租使用者的登入。 將您的應用程式設定為多租使用者,表示您可以將軟體即服務 (SaaS) 應用程式提供給許多組織,讓用戶能夠在提供同意之後登入您的應用程式。

語言/
平台
程式代碼範例(s)
在 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 授權碼

下一步

如果您想要深入瞭解更多範例程式代碼,請參閱: