Microsoft 标识平台代码示例
这些代码示例由 Microsoft 生成和维护,用于演示我们的身份验证库与 Microsoft 标识平台的使用。 常用的身份验证和授权方案在多种应用程序类型、开发语言和框架中实现。
- 让用户登录到 Web 应用程序,并提供对受保护的 Web API 的授权访问。
- 通过要求提供用于执行 API 操作的访问令牌来保护 Web API。
每个代码示例都包含 README.md 文件,该文件描述如何生成项目(如果适用)和如何运行示例应用程序。 代码中的注释有助于了解如何在应用程序中使用这些库,通过标识平台执行身份验证和授权。
示例和指南
使用选项卡按应用程序类型或首选语言/框架对示例进行排序。
单页应用程序
这些示例展示了如何编写由 Microsoft 标识平台保护的单页应用程序。 这些示例使用下列种类的 MSAL.js 之一。
语言 / 平台 |
代码示例 (在 GitHub 上) |
Auth 库 |
身份验证流 | 快速入门 | 教程 |
---|---|---|---|---|---|
React | • 将用户登录 | MSAL React | 采用 PKCE 的授权代码 | 快速入门 | 教程 |
Angular | • 将用户登录 | MSAL Angular | 采用 PKCE 的授权代码 | 快速入门 | 教程 |
JavaScript | • 将用户登录 • 调用 Microsoft Graph • 调用 Node.js Web API • 部署到 Azure 存储和应用服务 |
MSAL.js | 采用 PKCE 的授权代码 | 快速入门 | |
Blazor WebAssembly | • 将用户登录 • 调用 Microsoft Graph • 部署到 Azure 应用服务 |
MSAL.js | 采用 PKCE 的授权代码 | 快速入门 |
Web 应用程序
以下示例演示了将用户登录的 Web 应用。 一些示例还演示了使用用户标识调用 Microsoft Graph 或你自己的 Web API 的应用程序。
Web API
以下示例展示了如何使用 Microsoft 标识平台保护 Web API,以及如何从 Web API 调用下游 API。
语言 / 平台 |
代码示例 (在 GitHub 上) |
Auth 库 |
身份验证流 | 快速入门 | 教程 |
---|---|---|---|---|---|
ASP.NET | • 调用 Microsoft Graph | MSAL.NET | On-Behalf-Of (OBO) | 快速入门 | |
ASP.NET Core | • 使用 Microsoft 标识平台进行访问控制(受保护的路由) | MSAL.NET | On-Behalf-Of (OBO) | 快速入门 | 教程 |
Java | • 使用 Microsoft 标识平台保护 Java Spring Boot Web API | MSAL Java | On-Behalf-Of (OBO) | ||
Node.js | • 保护 Node.js Web API | MSAL Node | 授权持有者 |
桌面
以下示例展示了以用户身份访问 Microsoft Graph API 或你自己的 Web API 的公共客户端桌面应用程序。 除了“使用 Web 身份验证管理器 (WAM) 的桌面(控制台)”示例,所有这些客户端应用程序均使用 Microsoft 身份验证库 (MSAL)。
语言 / 平台 |
代码示例 (在 GitHub 上) |
Auth 库 |
身份验证流 | 快速入门 | 教程 |
---|---|---|---|---|---|
.NET Core | • 调用 Microsoft Graph • 使用令牌缓存调用 Microsoft Graph • 使用自定义 Web UI HTML 调用 Microsoft Graph • 使用自定义 Web 浏览器调用 Microsoft Graph • 使用设备代码流将用户登录 • 通过使用用户名/密码登录用户来调用 Microsoft Graph • 在 WinUI 桌面应用程序中使用 MSAL.NET 对用户进行身份验证 |
MSAL.NET | • 采用 PKCE 的授权代码 • 设备代码 • 资源所有者密码凭据 |
||
Java | • 调用 Microsoft Graph | MSAL Java | Windows 集成身份验证 | ||
Node.js | • 将用户登录 | MSAL Node | 采用 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 上) |
Auth 库 |
身份验证流 | 快速入门 | 教程 |
---|---|---|---|---|---|
.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 • 使用代理将用户登录并调用 Microsoft Graph |
MSAL.NET | 采用 PKCE 的授权代码 |
服务/守护程序
下面的示例展示了一个应用程序,它使用自己的标识(没有用户)访问 Microsoft Graph API。
语言 / 平台 |
代码示例 (在 GitHub 上) |
Auth 库 |
身份验证流 | 快速入门 | 教程 |
---|---|---|---|---|---|
.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 Node | 客户端凭据授予 | 快速入门 | 教程 |
Python | • 使用机密调用 Microsoft Graph • 使用证书调用 Microsoft Graph |
MSAL Python | 客户端凭据授予 | 快速入门 |
无浏览器(无外设)
以下示例展示了在没有 Web 浏览器的设备上运行的公共客户端应用程序。 该应用可以是命令行工具,可以是在 Linux 或 Mac 上运行的应用,还可以是 IoT 应用程序。 此示例提供了一个应用,以用户身份访问 Microsoft Graph API,该用户以交互方式在另一台设备上登录(例如移动电话)。 此客户端应用程序使用 Microsoft 身份验证库 (MSAL)。
语言 / 平台 |
代码示例 (在 GitHub 上) |
Auth 库 |
身份验证流 | 快速入门 | 教程 |
---|---|---|---|---|---|
.NET Core | • 从纯文本设备调用受保护的 API | MSAL.NET | 设备代码 | ||
Java | • 登录用户并从纯文本设备调用受保护的 API | MSAL Java | 设备代码 | ||
Python | • 调用 Microsoft Graph | MSAL Python | 设备代码 |
Azure Functions 作为 Web API
以下示例演示如何使用 HttpTrigger 保护 Azure Function 并通过 Microsoft 标识平台公开 Web API,以及如何从 Web API 调用下游 API。
语言 / 平台 |
代码示例 (在 GitHub 上) |
Auth 库 |
身份验证流 | 快速入门 | 教程 |
---|---|---|---|---|---|
Python | • 受 Microsoft Entra ID 保护的 Python Azure 函数 Web API | MSAL Python | 授权代码 |
Microsoft Teams 应用程序
下面的示例演示了使用户登录的 Microsoft Teams Tab 应用程序。 此外,它还演示了如何使用 Microsoft 身份验证库 (MSAL),利用用户的标识调用 Microsoft Graph API。
语言 / 平台 |
代码示例 (在 GitHub 上) |
Auth 库 |
身份验证流 | 快速入门 | 教程 |
---|---|---|---|---|---|
Node.js | • Teams Tab 应用:单一登录 (SSO) 并调用 Microsoft Graph | MSAL Node | On-Behalf-Of (OBO) |
多租户 SaaS
以下示例演示了如何配置应用程序,使其接受来自 Microsoft Entra 租户的登录。 将应用程序配置为多租户是指,你可向多个组织提供软件即服务 (SaaS) 应用程序,使它们的用户能够在同意后登录到你的应用程序。
语言 / 平台 |
代码示例 (在 GitHub 上) |
Auth 库 |
身份验证流 | 快速入门 | 教程 |
---|---|---|---|---|---|
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 • 授权代码 |
相关内容
若要深入了解更多示例代码,请参阅: