用于身份验证和授权的Microsoft标识平台代码示例

这些代码示例由 Microsoft 生成和维护,用于演示我们的身份验证库与 Microsoft 标识平台的使用。 常用的身份验证和授权方案在多种应用程序类型、开发语言和框架中实现。

  • 让用户登录到 Web 应用程序,并提供对受保护的 Web API 的授权访问。
  • 通过要求提供用于执行 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 登录用户
调用 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
• 授权代码
• 代理 (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(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
使用应用角色进行访问控制
使用安全组进行访问控制
部署到 Azure 应用服务
MSAL 节点 • 授权代码
• 前端专用后端 (BFF) 代理
快速入门 教程
Python Flask 让用户登录
用于登录到 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 上)
Auth
认证流程 快速入门 教程
.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。

语言 /
平台
代码示例
(在 GitHub 上)
身份验证
身份验证流程 快速入门 教程
.NET 访问受保护 Web API 的 .NET 控制台应用
使用 Microsoft 标识平台端点的多租户
MSAL.NET 客户端凭据授权 快速入门 教程
.NET 核心 调用 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 客户端凭据授权 快速入门

无浏览器(无外设)

以下示例展示了在没有 Web 浏览器的设备上运行的公共客户端应用程序。 该应用可以是命令行工具,可以是在 Linux 或 Mac 上运行的应用,还可以是 IoT 应用程序。 该示例演示了一个应用如何以在另一台设备上(例如手机)通过交互方式登录的用户身份访问 Microsoft 图形 API。 此客户端应用程序使用 Microsoft 身份验证库 (MSAL)。

语言 /
平台
代码示例
(在 GitHub 上)
身份验证
认证流程 快速入门 教程
.NET 核心 从纯文本设备调用受保护的 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 上)
身份验证
认证流程 快速入门 教程
Python 受 Microsoft Entra ID 保护的 Python Azure 函数 Web API MSAL Python 授权代码

Microsoft Teams 应用程序

下面的示例演示了使用户登录的 Microsoft Teams Tab 应用程序。 此外,它还演示了如何使用 Microsoft 身份验证库 (MSAL),利用用户的标识调用 Microsoft 图形 API。

语言 /
平台
代码示例
(在 GitHub 上)
身份验证
认证流程 快速入门 教程
Node.js Teams Tab 应用:单一登录 (SSO) 并调用 Microsoft Graph MSAL 节点 代理 (OBO)

多租户软件即服务

以下示例演示了如何配置应用程序,使其接受来自 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
• 授权代码

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