Microsoft 身分識別平台 程式代碼範例
Microsoft 會建置及維護這些程式碼範例,以示範使用我們的驗證連結庫與 Microsoft 身分識別平台。 常見的驗證和授權案例是在數 種應用程式類型、開發語言和架構中實作。
- 將使用者登入 Web 應用程式,並提供受保護 Web API 的授權存取權。
- 要求存取令牌執行 API 作業,以保護 Web API。
每個程式代碼範例都包含一個 README.md 檔案,描述如何建置專案(如果適用),並執行範例應用程式。 程序代碼中的批註可協助您了解這些連結庫在應用程式中如何使用身分識別平臺來執行驗證和授權。
範例和指南
使用索引標籤,依應用程式類型或您慣用的語言/架構來排序範例。
單頁應用程式
這些範例示範如何撰寫使用 Microsoft 身分識別平台 保護的單頁應用程式。 這些範例使用其中一種MSAL.js。
語言/ 平台 |
程式代碼範例(s) 在 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 服務 |
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。
語言/ 平台 |
程式代碼範例(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 | 授權碼 |
下一步
如果您想要深入瞭解更多範例程式代碼,請參閱: