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-singlepageapp | ||
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 2.0 | dotnet-webapp-openidconnect-aspnetcore | webapp-webapi-multitenant-openidconnect-aspnetcore (Azure AD Graph) | dotnet-webapp-webapi-openidconnect-aspnetcore |
ASP.NET 4.5 | webapp-WSFederation-dotNet dotnet-webapp-webapi-oauth2-useridentity | dotnet-webapp-multitenant-openidconnect (Azure AD Graph) | |
python-webapp-graphapi | |||
java-webapp-openidconnect | |||
php-graphapi-web |
演示基于角色的访问控制(授权)的 Web 应用程序
以下示例演示如何实现基于角色的访问控制 (RBAC)。 RBAC 用于将 Web 应用中某些功能的权限限制为某些用户。 系统将根据用户是属于 Azure AD 组还是拥有一个给定的应用程序角色,对其进行授权。
平台 | 示例 | 说明 |
---|---|---|
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) | 交互 |
dotnet-native-multitarget 的一部分 |
dotnet-native-desktop dotnet-native-aspnetcore dotnet-webapi-manual-jwt-validation |
|
移动 (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) | 交互 | dotnet-native-multitarget |
||
移动 (Android) | 交互 | android |
||
移动 (iOS) | 交互 | nativeClient-iOS |
||
桌面(控制台) | 用户名/密码 Windows 集成身份验证 | dotnet-native-headless |
||
桌面(控制台) | 用户名/密码 | java-native-headless |
||
桌面(控制台) | 设备代码流 | dotnet-deviceprofile |
守护程序应用程序(使用应用程序的标识访问 Web API)
以下示例展示了可在无用户的情况下(使用应用程序标识)访问 Microsoft Graph 或 Web API 的桌面或 Web 应用程序。
客户端应用程序 | 平台 | 流/授权 | 调用 ASP.NET 或 ASP.NET Core 2.0 Web API |
---|---|---|---|
守护程序应用(控制台) | 使用应用密码或证书的客户端凭据 | dotnet-daemon dotnet-daemon-certificate-credential | |
守护程序应用(控制台) | 使用证书的客户端凭据 | dotnetcore-daemon-certificate-credential | |
ASP.NET Web 应用 | 客户端凭据 | 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-webapi |
调用 Microsoft Graph 或另一个 Web API 的 Web API
以下示例展示了调用另一个 Web API 的 Web API。 第二个示例展示了如何处理条件访问。
平台 | 调用 Microsoft Graph | 调用另一个 ASP.NET 或 ASP.NET Core 2.0 Web API |
---|---|---|
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 社区示例和教程)。