Azure Active Directory 代码示例(v1.0 终结点)

警告

本内容适用于较旧版本的 Azure AD v1.0 终结点。 为新项目使用 Microsoft 标识平台

可以使用 Azure Active Directory (Azure AD) 向 Web 应用程序和 Web API 添加身份验证和授权。

此部分提供可用于详细了解 Azure AD v1.0 终结点的示例链接。 这些示例将展示其工作原理以及可以在应用程序中使用的代码片段。 在代码示例页上,可以找到在要求、安装和设置方面提供帮助的详细自述主题。 并且代码带有注释,可以帮助你理解关键部分。

注意

如果对Microsoft Entra V2 代码示例感兴趣,请参阅 v2.0 代码示例(按方案)。

警告

对 Active Directory 身份验证库 (ADAL) 的支持将于 2022 年 12 月结束。 在现有 OS 版本上使用 ADAL 的应用将继续正常运行,但技术支持或安全更新将结束。 如果没有持续安全更新,使用 ADAL 的应用将变得越来越容易遭受最新安全攻击模式的攻击。 有关详细信息,请参阅将应用迁移到 MSAL

若要了解每种示例类型的基本方案,请参阅 Azure AD 的身份验证方案

你也可以在 GitHub 上为我们的示例做出补充。 若要了解如何操作,请参阅 Azure Active Directory 示例和文档

单页应用程序

此示例展示了如何编写受 Azure AD 保护的单页应用程序。

平台 调用自身的 API 调用其他 Web API
此图显示了 JavaScript 徽标 javascript-singlepageapp
此图显示了 Angular JS 徽标 angularjs-singlepageapp angularjs-singlepageapp-cors

Web 应用程序

可让用户登录、使用用户标识调用 Microsoft Graph 或 Web API 的 Web 应用程序

以下示例说明了 Web 应用程序签名用户。 其中一些应用程序还以已登录用户的名义调用 Microsoft Graph 或你自己的 Web API。

平台 仅让用户登录 调用 Microsoft Graph 调用另一个 ASP.NET 或 ASP.NET Core 2.0 Web API
此图显示了 ASP.NET Core 徽标

ASP.NET Core 2.0
dotnet-webapp-openidconnect-aspnetcore webapp-webapi-multitenant-openidconnect-aspnetcore

(Azure AD Graph)
dotnet-webapp-webapi-openidconnect-aspnetcore
此图显示了 ASP.NET Framework 徽标

ASP.NET 4.5

webapp-WSFederation-dotNet

dotnet-webapp-webapi-oauth2-useridentity
dotnet-webapp-multitenant-openidconnect

(Azure AD Graph)
此图显示了 Python 徽标 python-webapp-graphapi
此图显示了 Java 徽标 java-webapp-openidconnect
此图显示了 PHP 徽标 php-graphapi-web

演示基于角色的访问控制(授权)的 Web 应用程序

以下示例演示如何实现基于角色的访问控制 (RBAC)。 RBAC 用于将 Web 应用中某些功能的权限限制为某些用户。 系统将根据用户是属于 Azure AD 组还是拥有一个给定的应用程序角色,对其进行授权。

平台 示例 说明
此图显示了 ASP.NET Framework 徽标

ASP.NET 4.5
dotnet-webapp-groupclaims

dotnet-webapp-roleclaims
使用 Azure AD 角色进行授权的 .NET 4.5 MVC Web 应用

调用 Microsoft Graph 或 Web API 的桌面和移动公共客户端应用程序

以下示例演示了以用户身份访问 Microsoft Graph 或 Web API 的公共客户端应用程序(桌面/移动应用程序)。 根据设备和平台,应用程序可以用不同方式(流/授权)让用户登录:

  • 交互式
  • 无提示方式(使用 Windows 上的集成 Windows 身份验证,或用户名/密码)
  • 通过将交互式登录委托给另一设备(在不提供 Web 控件的设备上使用的设备代码流)
客户端应用程序 平台 流/授权 调用 Microsoft Graph 调用 ASP.NET 或 ASP.NET Core 2.x Web API
桌面 (WPF) 此图显示了 .NET/C# 徽标 交互 dotnet-native-multitarget 的一部分 dotnet-native-desktop

dotnet-native-aspnetcore

dotnet-webapi-manual-jwt-validation
移动 (UWP) 此图显示了 .NET/C#/UWP 交互 dotnet-native-uwp-wam

此示例使用 WAM,而不是 ADAL.NET
dotnet-windows-store(使用 ADAL.NET 调用单租户 Web API 的 UWP 应用程序)

dotnet-webapi-multitenant-windows-store(使用 ADAL.NET 调用多租户 Web API 的 UWP 应用程序)
移动(Android、iOS、UWP) 此图显示了 .NET/C# (Xamarin) 交互 dotnet-native-multitarget
移动 (Android) 此图显示了 Android 徽标 交互 android
移动 (iOS) 此图显示了 iOS/Objective C 或 Swift 交互 nativeClient-iOS
桌面(控制台) 此图显示了 .NET/C# 徽标 用户名/密码

Windows 集成身份验证
dotnet-native-headless
桌面(控制台) 此图显示了 Java 徽标 用户名/密码 java-native-headless
桌面(控制台) 此图显示了 .NET Core/C# 徽标 设备代码流 dotnet-deviceprofile

守护程序应用程序(使用应用程序的标识访问 Web API)

以下示例展示了可在无用户的情况下(使用应用程序标识)访问 Microsoft Graph 或 Web API 的桌面或 Web 应用程序。

客户端应用程序 平台 流/授权 调用 ASP.NET 或 ASP.NET Core 2.0 Web API
守护程序应用(控制台) 此图显示了 .NET Framework 徽标 使用应用密码或证书的客户端凭据 dotnet-daemon

dotnet-daemon-certificate-credential
守护程序应用(控制台) 此图显示了 .NET Core 徽标 使用证书的客户端凭据 dotnetcore-daemon-certificate-credential
ASP.NET Web 应用 此图显示了 .NET Framework 徽标 客户端凭据 dotnet-webapp-webapi-oauth2-appidentity

Web API

受 Azure Active Directory 保护的 Web API

以下示例展示了如何使用 Azure AD 保护 Node.js Web API。

在本文的前几部分中,还可以找到其他示例,这些示例演示了一个调用 ASP.NET 或 ASP.NET Core Web API 的客户端应用程序。 本部分不再提及这些示例,但你可以在上表或下表的最后一列中找到它们

平台 示例
此图显示了 Node.js 徽标 node-webapi

调用 Microsoft Graph 或另一个 Web API 的 Web API

以下示例展示了调用另一个 Web API 的 Web API。 第二个示例展示了如何处理条件访问。

平台 调用 Microsoft Graph 调用另一个 ASP.NET 或 ASP.NET Core 2.0 Web API
此图显示了 ASP.NET Framework 徽标

ASP.NET 4.5
dotnet-webapi-onbehalfof

dotnet-webapi-onbehalfof-ca
dotnet-webapi-onbehalfof

dotnet-webapi-onbehalfof-ca

其他 Microsoft Graph 示例

有关演示 Microsoft Graph API 的各种使用模式(包括向 Azure AD 进行身份验证)的示例和教程,请参阅 Microsoft Graph Community Samples & Tutorials(Microsoft Graph 社区示例和教程)。

另请参阅