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 的应用程序。

语言/平台 GitHub 上的代码示例 身份验证库 身份验证流 快速入门 教程
ASP.NET Microsoft Graph 训练示例
将用户登录并以管理员限制的范围调用 Microsoft Graph
MSAL.NET
Microsoft.Identity.Web
高级令牌缓存场景
• OpenID Connect
• 授权代码
• On-Behalf-Of (OBO)
快速入门
ASP.NET Core 将用户登录
调用 Microsoft Graph
自定义令牌缓存
使用条件访问身份验证上下文执行升级身份验证
调用图形(多租户)
调用 Azure REST API
保护 Web API
保护多租户 Web API
使用应用角色进行访问控制
使用安全组进行访问控制
部署到 Azure 存储和应用服务
Active Directory 联合身份验证服务迁移到 Microsoft Entra
Microsoft.Identity.Web • OpenID Connect
• 授权代码
• 代理流 (OBO)
快速入门 教程
Blazor 将用户登录
调用 Microsoft Graph
调用 Web API
MSAL.NET 混合流
Java Spring 将用户登录
调用 Microsoft Graph
使用应用角色进行访问控制
使用组进行访问控制
保护 Web API
部署到 Azure 应用服务
MSAL Java 授权代码 教程
Java Servlet 将用户登录
调用 Microsoft Graph
使用应用角色进行访问控制
使用安全组进行访问控制
部署到 Azure 应用服务
MSAL Java 授权代码 快速入门
Node.js Express 将用户登录
使用 MSAL Node 和 Microsoft 标识平台构建的 Express Web 应用程序
调用 Microsoft Graph
通过 BFF 代理调用 Microsoft Graph
使用应用角色进行访问控制
使用安全组进行访问控制
部署到 Azure 应用服务
MSAL Node • 授权代码
• 用于前端的后端 (BFF) 代理
快速入门 教程
Python Flask 将用户登录
用于登录 Microsoft Entra ID 的模板,并根据需要调用下游 API(Microsoft Graph)
MSAL Python 授权代码 快速入门 教程
Python Django 将用户登录 MSAL Python 授权代码
Ruby 将用户登录并调用 Microsoft Graph OmniAuth OAuth2 授权代码

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
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 图形 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
• 授权代码

若要深入了解更多示例代码,请参阅: