Microsoft用於驗證和授權的身分識別平台程式代碼範例

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

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

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

範例和指南

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

單頁應用程式

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

語言/
平台
範例程式碼
在 GitHub 上
驗證
圖書館
驗證流程 快速入門 教程
React • 登入使用者 MSAL React 帶有 PKCE 的授權碼 快速入門 教學課程
Angular (網頁框架) • 登入使用者 MSAL Angular 帶有 PKCE 的授權碼 快速入門 教學課程
JavaScript • 登入使用者
• 呼叫 Microsoft Graph
• 呼叫 Node.js Web API
• 部署至 Azure 儲存體和應用程式服務
MSAL.js 帶有 PKCE 的授權碼 快速入門
Blazor WebAssembly(Blazor 網頁組件) • 登入使用者
• 呼叫 Microsoft Graph
• 部署至 Azure App 服務
MSAL.js 帶有 PKCE 的授權碼 快速入門

Web 應用程式

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

語言/ 平臺 GitHub 上的程式代碼範例 身份驗證函式庫 驗證流程 快速入門 教程
ASP.NET • Microsoft Graph 訓練範例
• 讓使用者登入並使用系統管理員受限範圍呼叫 Microsoft Graph
• MSAL.NET
• Microsoft。Identity.Web
• 進階令牌快取情境
• OpenID Connect
• 授權碼
• 代表 (OBO)
快速入門
ASP.NET Core • 登入使用者
• 呼叫 Microsoft Graph
• 自訂 Token 快取
• 使用條件式存取驗證內容來執行逐步驗證
• 呼叫圖形 (多租使用者)
• 呼叫 Azure REST API
• 保護 Web API
• 保護多租戶 Web API
• 使用應用程式角色進行存取控制
• 使用安全性群組進行存取控制
• 部署至 Azure 儲存體和應用程式服務
• Active Directory 同盟服務 至 Microsoft Entra 移轉
Microsoft.Identity.Web • OpenID Connect
• 授權碼
• 代表流程(On-Behalf-Of Flow, OBO)
快速入門 教學課程
Blazor • 登入使用者
• 呼叫 Microsoft Graph
• 呼叫 Web API
MSAL.NET 混合式流程
爪哇之春 • 登入使用者
• 呼叫 Microsoft Graph
• 使用應用程式角色進行存取控制
• 使用群組進行存取控制
• 保護 Web API
• 部署至 Azure App 服務
MSAL Java 授權碼 教學課程
Java Servlet • 登入使用者
• 呼叫 Microsoft Graph
• 使用應用程式角色進行存取控制
• 使用安全性群組進行存取控制
• 部署至 Azure App 服務
MSAL Java 授權碼 快速入門
Node.js Express • 登入使用者
• 使用 MSAL 節點和 Microsoft 身分識別平台 建置的快速 Web 應用程式
• 呼叫 Microsoft Graph
• 使用應用程式角色進行存取控制
• 使用安全性群組進行存取控制
• 部署至 Azure App 服務
MSAL 節點 • 授權碼
• Backend-for-Frontend (BFF) 代理伺服器 (後端前端代理)
快速入門 教學課程
Python Flask(一個用於構建Web應用的框架) • 登入使用者
• 用於登入 Microsoft Entra ID 的範本,並可以選擇性地呼叫下游 API(Microsoft Graph)
MSAL Python 授權碼 快速入門 教學課程
Python Django • 登入使用者 MSAL Python 授權碼
Ruby • 登入使用者並呼叫 Microsoft Graph OmniAuth OAuth2 授權碼

網路應用程式介面

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

語言/
平台
範例程式碼
在 GitHub 上
驗證
圖書館
驗證流程 快速入門 教程
ASP.NET • 呼叫 Microsoft Graph MSAL.NET 代理代表 (OBO) 快速入門
ASP.NET Core • 存取控制(受保護的路由)與 Microsoft 身分識別平台 MSAL.NET 代理代表 (OBO) 快速入門 教學課程
JAVA • 使用 Microsoft 身分識別平台 保護您的 Java Spring Boot Web API MSAL Java 代理代表 (OBO)
Node.js • 保護 Node.js Web API MSAL 節點 授權持有人

桌面

下列範例說明公開用戶端桌面應用程式會以使用者名稱存取 Microsoft 圖形 API 或您自己的 Web API。 除了桌面 (主控台) 搭配 Web 驗證管理員 (WAM) 範例之外,這些用戶端應用程式都會使用 Microsoft 驗證程式庫 (MSAL)。

語言/
平台
範例程式碼
在 GitHub 上
驗證
圖書館
驗證流程 快速入門 教程
.NET 核心 • 呼叫 Microsoft Graph
• 使用令牌快取呼叫 Microsoft Graph
• 使用自訂 Web UI HTML 呼叫 Microsoft Graph
• 使用自訂 Web 瀏覽器呼叫 Microsoft Graph
• 使用裝置代碼流登入使用者
• 以使用者名稱/密碼登入來呼叫 Microsoft Graph
MSAL.NET • 授權碼配合 PKCE
• 裝置程序代碼
• 資源擁有者密碼認證
JAVA • 呼叫 Microsoft Graph MSAL Java 整合式 Windows 驗證
Node.js • 登入使用者 MSAL 節點 帶有 PKCE 的授權碼 快速入門 教學課程
Python • 登入使用者 MSAL Python 資源擁有者密碼認證
Windows Presentation Foundation (WPF) • 登入使用者並呼叫 Microsoft Graph
• Windows Presentation Foundation (WPF) 使用者登入、受保護的 Web API 存取 (Microsoft Graph)
登入使用者並呼叫 ASP.NET Core Web API
• 登入使用者並呼叫 Microsoft Graph
MSAL.NET 帶有 PKCE 的授權碼 快速入門 教學課程

手機

下列範例顯示會存取 Microsoft 圖形 API 的公用用戶端行動應用程式。 這些用戶端應用程式都會使用 Microsoft 驗證程式庫 (MSAL)。

語言/
平台
範例程式碼
在 GitHub 上
驗證
圖書館
驗證流程 快速入門 教程
.NET 核心 • 使用 MAUI 呼叫 Microsoft Graph
• 使用 MAUI 與代理程式呼叫 Microsoft Graph
MSAL.NET 帶有 PKCE 的授權碼
iOS • 呼叫原生 Microsoft Graph MSAL iOS 帶有 PKCE 的授權碼 快速入門 教學課程
JAVA • 登入使用者並呼叫 Microsoft Graph MSAL Android 帶有 PKCE 的授權碼 快速入門 教學課程
Kotlin • 登入使用者並呼叫 Microsoft Graph MSAL Android 帶有 PKCE 的授權碼

服務/精靈

下列範例說明如何使用其自有的身分識別 (無使用者) 存取 Microsoft 圖形 API 的應用程式。

無瀏覽器 (無頭)

下列範例示範在裝置 (沒有網頁瀏覽器) 上執行的公開用戶端應用程式。 此應用程式可以是命令列工具,或是在 Linux 或 Mac 上執行的應用程式,或者是 IoT 應用程式。 此範例展示了一個應用程式,讓使用者在另一個裝置上以互動方式登入(例如在行動電話上),並透過這個使用者的名義來存取 Microsoft 圖形 API。 此用戶端應用程式會使用 MicroSoft 驗證程式庫 (MSAL)。

語言/
平台
範例程式碼
在 GitHub 上
驗證
圖書館
驗證流程 快速入門 教程
.NET 核心 • 從純文本裝置叫用受保護的 API MSAL.NET 裝置代碼
JAVA • 登入使用者並從純文本裝置叫用受保護的 API MSAL Java 裝置代碼
Python • 呼叫 Microsoft Graph MSAL Python 裝置代碼

Azure Functions 作為網頁 API

下列範例說明如何使用 HttpTrigger 保護 Azure 函式,並使用 Microsoft 身分識別平台公開 Web API,以及如何從 Web API 呼叫下游的 API。

語言/
平台
範例程式碼
在 GitHub 上
驗證
圖書館
驗證流程 快速入門 教程
Python • 由 Microsoft Entra ID 保護的 Python Azure 函數 Web API MSAL Python 授權碼

Microsoft Teams 應用程式

下列範例說明可登入使用者的 Microsoft Teams Tab 應用程式。 此外,還會示範如何使用 Microsoft 驗證函式庫 (MSAL) 以使用者身分識別來呼叫 Microsoft 圖形 API。

語言/
平台
範例程式碼
在 GitHub 上
驗證
圖書館
驗證流程 快速入門 教程
Node.js • Teams 標籤頁應用程式:單一登入(SSO)和呼叫 Microsoft Graph MSAL 節點 代理代表 (OBO)

多租戶 SaaS

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

語言/
平台
範例程式碼
在 GitHub 上
驗證
圖書館
驗證流程 快速入門 教程
ASP.NET Core • ASP.NET Core MVC Web 應用程式呼叫 Microsoft 圖形 API
• ASP.NET Core MVC Web 應用程式呼叫 ASP.NET Core Web API
MSAL.NET • OpenID Connect
• 授權碼

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