Microsoft 身分識別平台程式碼範例
Microsoft 會建置和維護這些程式碼範例,以示範如何搭配使用驗證程式庫與 Microsoft 身分識別平台。 常見的驗證和授權案例是透過數種應用程式類型、開發語言和架構所實作。
- 將使用者登入至 Web 應用程式,並將授權存取權提供給受保護 Web API。
- 要求存取權杖以保護 Web API 執行 API 作業。
每個程式碼範例都會包括 README.md 檔案,以說明如何建置專案 (如果適用) 並執行範例應用程式。 程式碼中的註解可協助您了解如何在應用程式中使用這些程式庫,以使用身分識別平台來執行驗證和授權。
範例和指南
使用索引標籤,依應用程式類型或您慣用的語言/架構來排序範例。
單頁應用程式
這些範例示範如何撰寫以 Microsoft 身分識別平台保護的單頁應用程式。 這些範例會使用其中一種 MSAL.js。
語言/ 平台 |
GitHub 上的 程式碼範例 |
認證 程式庫 |
驗證流程 | 快速入門 | 教學課程 |
---|---|---|---|---|---|
React | • 登入使用者 | MSAL React | 授權碼搭配 PKCE | 快速入門 | 教學課程 |
Angular | • 登入使用者 | MSAL Angular | 授權碼搭配 PKCE | 快速入門 | 教學課程 |
JavaScript | • 登入使用者 • 呼叫 Microsoft Graph • 呼叫 Node.js Web API • 部署至 Azure 儲存體和 App Service |
MSAL.js | 授權碼搭配 PKCE | 快速入門 | |
Blazor WebAssembly | • 登入使用者 • 呼叫 Microsoft Graph • 部署至 Azure App Service |
MSAL.js | 授權碼搭配 PKCE | 快速入門 |
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 身分識別平台 | MSAL.NET | • 代理者 (OBO) | 快速入門 | 教學課程 |
Java | • 使用 Microsoft 身分識別平台 保護您的 Java Spring Boot Web API | MSAL Java | • 代理者 (OBO) | ||
Node.js | • 保護 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 • 使用裝置程式碼流程登入使用者 • 使用使用者名稱/密碼登入使用者,以呼叫 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 Graph API 的公開用戶端行動應用程式。 這些用戶端應用程式都會使用 Microsoft 驗證程式庫 (MSAL)。
語言/ 平台 |
GitHub 上的 程式碼範例 |
認證 程式庫 |
驗證流程 | 快速入門 | 教學課程 |
---|---|---|---|---|---|
.NET Core | • 使用 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 | ||
Xamarin | • 登入使用者並呼叫 Microsoft Graph • 使用代理程式 (Broker) 登入使用者並呼叫 Microsoft Graph |
MSAL.NET | 授權碼搭配 PKCE |
服務/精靈
下列範例說明如何使用其自有的身分識別 (無使用者) 存取 Microsoft Graph API 的應用程式。
語言/ 平台 |
GitHub 上的 程式碼範例 |
認證 程式庫 |
驗證流程 | 快速入門 | 教學課程 |
---|---|---|---|---|---|
.NET | • 存取受保護 Web API 的 .NET 控制台應用程式 • 具有 Microsoft 身分識別平台 端點的多租使用者 |
MSAL.NET | 用戶端認證授與 | 快速入門 | 教學課程 |
.NET Core | • 呼叫 Microsoft Graph • 呼叫 Web API • 使用受控識別呼叫 MSGraph • 使用受控識別來呼叫 API • 呼叫 API 的背景工作角色 |
Microsoft.Identity.Web | 用戶端認證授與 | ||
Java | • 使用祕密呼叫 Microsoft Graph • 使用憑證呼叫 Microsoft Graph |
MSAL Java | 用戶端認證授與 | 快速入門 | |
Node.js | • 使用秘密呼叫 Microsoft Graph | MSAL 節點 | 用戶端認證授與 | 快速入門 | 教學課程 |
Python | • 使用秘密呼叫 Microsoft Graph • 使用憑證呼叫 Microsoft Graph |
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 | 裝置代碼 |
Azure Functions 即 Web API
下列範例說明如何使用 HttpTrigger 保護 Azure 函式,並使用 Microsoft 身分識別平台公開 Web API,以及如何從 Web API 呼叫下游的 API。
語言/ 平台 |
GitHub 上的 程式碼範例 |
認證 程式庫 |
驗證流程 | 快速入門 | 教學課程 |
---|---|---|---|---|---|
Python | • 由 Microsoft Entra 識別符保護的 Python Azure 函式 Web API | MSAL Python | 授權碼 |
Microsoft Teams 應用程式
下列範例說明可登入使用者的 Microsoft Teams Tab 應用程式。 此外,還會示範如何搭配使用使用者身分識別與 Microsoft 驗證程式庫 (MSAL) 來呼叫 Microsoft Graph API。
語言/ 平台 |
GitHub 上的 程式碼範例 |
認證 程式庫 |
驗證流程 | 快速入門 | 教學課程 |
---|---|---|---|---|---|
Node.js | • Teams 索引標籤應用程式:單一登錄 (SSO) 和呼叫 Microsoft Graph | MSAL 節點 | • 代理者 (OBO) |
多租使用者 SaaS
下列範例示範如何設定應用程式以接受來自任何 Microsoft Entra 租用戶的登入。 將您的應用程式設定為 多租使用者 ,表示您可以在提供 軟體即服務 (SaaS) 應用程式給許多組織,讓用戶能夠在提供同意之後登入您的應用程式。
語言/ 平台 |
GitHub 上的 程式碼範例 |
認證 程式庫 |
驗證流程 | 快速入門 | 教學課程 |
---|---|---|---|---|---|
ASP.NET Core | • ASP.NET Core MVC Web 應用程式呼叫 Microsoft Graph API • ASP.NET Core MVC Web 應用程式呼叫 ASP.NET Core Web API |
MSAL.NET | • OpenID Connect • 授權碼 |
相關內容
如果您想要深入探索更多範例程式碼,請參閱: