Azure Active Directory 代码示例

本文是 Azure Active Directory 开发人员指南的一部分。

可以使用 Azure Active Directory (Azure AD) 向 Web 应用程序和 Web API 添加身份验证和授权。 本部分提供指向示例的链接,这些示例展示了它的工作原理以及可以在应用程序中使用的代码片段。 在代码示例页上,可以找到在要求、安装和设置方面提供帮助的详细自述主题。 并且代码带有注释,可以帮助你理解关键部分。

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

为 GitHub 上的示例做出补充: Azure Active Directory 示例和文档

Web 浏览器到 Web 应用程序

这些示例展示了如何编写 web 应用程序来对用户的浏览器进行定向以使用户登录到 Azure AD。

语言/平台 示例 说明
C#/.NET WebApp-OpenIDConnect-DotNet 使用 OpenID Connect(ASP.Net OpenID Connect OWIN 中间件)从一个 Azure AD 租户对用户进行身份验证。
C#/.NET WebApp-MultiTenant-OpenIdConnect-DotNet 一个多租户 .NET MVC web 应用程序,使用 OpenID Connect(ASP.Net OpenID Connect OWIN 中间件)从多个 Azure AD 租户对用户进行身份验证。
C#/.NET WebApp-WSFederation-DotNet 使用 WS-联合身份验证(ASP.Net WS-Federation OWIN 中间件)从一个 Azure AD 租户对用户进行身份验证。

单页面应用程序 (SPA)

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

语言/平台 示例 说明
JavaScript、C#/.NET SinglePageApp-DotNet 使用适用于 JavaScript 的 ADAL 和 Azure AD 保护使用 ASP.NET Web API 后端实施的基于 AngularJS 的单页面应用。

本机应用程序到 Web API

这些代码示例展示了如何构建本机应用程序来调用受 Azure AD 保护的 web API。 它们使用 Azure AD 身份验证库 (ADAL)Azure AD 中的 OAuth 2.0

语言/平台 示例 说明
Javascript NativeClient-MultiTarget-Cordova 使用 Apache Cordova 的 ADAL 插件构建一个可调用 Web API 并使用 Azure AD 进行身份验证的 Apache Cordova 应用。
C#/.NET NativeClient-DotNet 一个 .NET WPF 应用程序,它调用了使用 Azure AD 保护的一个 Web API。
C#/.NET NativeClient-WindowsStore 一个 Windows 应用商店应用程序,它调用了使用 Azure AD 保护的一个 Web API。
C#/.NET NativeClient-WebAPI-MultiTenant-WindowsStore 一个 Windows 应用商店应用程序,它调用了使用 Azure AD 保护的多租户 Web API。
C#/.NET WebAPI-OnBehalfOf-DotNet 一个本机客户端应用程序,它调用了一个 web API,该 Web API 代表原始用户获取一个令牌,并使用该令牌调用另一个 Web API。
C#/.NET NativeClient-WindowsPhone8.1 一个适用于 Windows Phone 8.1 的 Windows 应用商店应用程序,它调用了由 Azure AD 保护的一个 Web API。
ObjC NativeClient-iOS 一个 iOS 应用程序,它调用了要求 Azure AD 进行身份验证的一个 Web API。
C#/.NET WebAPI-ManuallyValidateJwt-DotNet 一个本机客户端应用程序,其中包含了用来在 Web API 中(而非使用 OWIN 中间件)处理 JWT 令牌的逻辑。
C#/Xamarin NativeClient-Xamarin-Android 到适用于 Android 库的本机 Azure AD 身份验证库 (ADAL) 的一个 Xamarin 绑定。
C#/Xamarin NativeClient-Xamarin-iOS 到适用于 iOS 的本机 Azure AD 身份验证库 (ADAL) 的一个 Xamarin 绑定。
C#/Xamarin NativeClient-MultiTarget-DotNet 一个 Xamarin 项目,它面向五个平台并且调用由 Azure AD 保护的 Web API。
C#/.NET NativeClient-Headless-DotNet 一个本机应用程序,它执行非交互身份验证并调用由 Azure AD 保护的 Web API。

Web 应用程序到 Web API

这些代码示例展示了如何使用 Azure AD 中的 OAuth 2.0 来构建调用受 Azure AD 保护的 Web API 的 Web 应用程序。

语言/平台 示例 说明
C#/.NET WebApp-WebAPI-OpenIDConnect-DotNet 使用已注册用户的权限调用 Web API。
C#/.NET WebApp-WebAPI-OAuth2-AppIdentity-DotNet 使用应用程序的权限调用 Web API。
C#/.NET WebApp-WebAPI-OAuth2-UserIdentity-Dotnet 使用 Azure AD 中的 OAuth 2.0 向现有 Web 应用程序添加授权以便它能够调用 Web API。
Javascript WebAPI-Nodejs 设置一个与 Azure AD 集成的 REST API 服务以提供 API 保护。 在 Web API 中包含 Node.js 服务器。
C#/.NET WebApp-WebAPI-MultiTenant-OpenIdConnect-DotNet 一个多租户 MVC Web 应用程序,使用 OpenID Connect(ASP.Net OpenID Connect OWIN 中间件)从 Azure AD 租户对用户进行身份验证。 使用授权代码来调用图形 API。

服务器或守护程序应用程序到 Web API

这些代码示例展示了如何构建守护程序或服务器应用程序,通过使用 Azure AD 身份验证库 (ADAL)Azure AD 中的 OAuth 2.0 从 Web API 中获取资源。

语言/平台 示例 说明
C#/.NET Daemon-DotNet 控制台应用程序调用 Web API。 客户端凭据是密码。
C#/.NET Daemon-CertificateCredential-DotNet 调用了 Web API 的一个控制台应用程序。 客户端凭据是证书。

调用 Azure AD 图形 API

这些代码示例展示了如何构建应用程序来调用 Azure AD 图形 API 以读取和写入目录数据。

语言/平台 示例 说明
Java WebApp-GraphAPI-Java 一个 Web 应用程序,它使用图形 API 访问 Azure AD 目录数据。
PHP WebApp-GraphAPI-PHP 一个 Web 应用程序,它使用图形 API 访问 Azure AD 目录数据。
C#/.NET WebApp-GraphAPI-DotNet 一个 Web 应用程序,它使用图形 API 访问 Azure AD 目录数据。
C#/.NET ConsoleApp-GraphAPI-DotNet 这是一个控制台应用程序,它展示了对图形 API 的常用读取和写入调用,并展示了如何执行用户许可证分配以及更新用户的缩略图照片和链接。
C#/.NET ConsoleApp-GraphAPI-DiffQuery-DotNet 一个控制台应用程序,它使用图形 API 中的差异查询来获取对 Azure AD 中的用户对象的定期更改。
C#/.NET WebApp-GraphAPI-DirectoryExtensions-DotNet 一个 MVC 应用程序,它使用图形 API 查询生成简单的公司组织图。
PHP WebApp-GraphAPI-DirectoryExtensions-PHP 一个 PHP 应用程序,它调用图形 API 来注册扩展,并读取、更新和删除扩展属性中的值。

授权

这些代码示例展示了如何使用 Azure AD 进行授权。

语言/平台 示例 说明
C#/.NET WebApp-GroupClaims-DotNet 在与 Azure AD 集成的应用程序中,执行使用 Azure Active Directory 组声明的基于角色的访问控制 (RBAC)。
C#/.NET WebApp-RoleClaims-DotNet 在与 Azure AD 集成的应用程序中,执行使用 Azure Active Directory 应用程序角色的基于角色的访问控制 (RBAC)。

旧时演练

这些演练使用稍旧的技术,但可能仍值得关注。

语言/平台 示例 说明
C#/.NET Azure AD 应用程序中基于角色和基于 ACL 的授权 在与 Azure AD 集成的应用程序中,执行基于角色的授权 (RBAC) 和基于 ACL 的授权。
C#/.NET AAL - Windows 应用商店应用到 REST 服务 - 身份验证 使用适用于 Windows 应用商店 Beta 版的 Azure AD 身份验证库 (ADAL)(以前称为 AAL)向 Windows 应用商店应用添加用户身份验证功能。
C#/.NET ADAL - 本机应用到 REST 服务 - 通过浏览器对话框使用 AAD 进行身份验证 使用 Azure AD 身份验证库 (ADAL) 向 WPF 客户端添加用户身份验证功能。
C#/.NET ADAL - Native App to REST service - Authentication with ACS via Browser Dialog(ADAL - 本机应用到 REST 服务 - 通过浏览器对话框使用 ACS 进行身份验证) 使用 Azure AD 身份验证库 (ADAL)访问控制服务 2.0 (ACS) 向 WPF 客户端添加用户身份验证功能。
C#/.NET ADAL - 服务器到服务器的身份验证 使用 Azure AD 身份验证库 (ADAL) 保护从服务器端进程到 MVC4 Web API REST 服务的服务调用。
C#/.NET 使用 Azure AD 将登录名添加到 Web 应用程序 将 .NET 应用程序配置为根据 Azure AD 企业目录执行 Web 单一登录。
C#/.NET 利用 Azure AD 开发多租户 Web 应用程序 使用 Azure AD 添加一个 .NET 应用程序的单一登录和目录访问功能,以便在多个组织中工作。
Java Azure AD 图形 API 的 Java 示例应用 使用图形 API 访问 Azure AD 中的目录数据。
PHP Azure AD 图形 API 的 PHP 示例应用 使用图形 API 访问 Azure AD 中的目录数据。
C#/.NET Azure AD 图形 API 的示例应用 使用图形 API 访问 Azure AD 中的目录数据。
C#/.NET Azure AD Graph 差异查询的示例应用 使用图形 API 中的差异查询来获取对 Azure AD 租户中用户对象的定期更改。
C#/.NET 用于集成 Azure AD 的多租户云应用程序的示例应用 将多租户应用程序集成到 Azure AD 中。
C#/.NET 使用 Azure AD 保护 Windows 应用商店应用程序和 REST Web 服务 使用 Azure AD 和 Azure AD 身份验证库 (ADAL),创建简单的 Web API 资源和 Windows 应用商店客户端应用程序。
C#/.NET 使用图形 API 查询 Azure AD 将 Microsoft .NET 应用程序配置为使用 Azure AD 图形 API 访问 Azure AD 租户目录中的数据。

另请参阅

其他资源

Azure Active Directory 开发人员指南

Azure AD 图形 API 概念和参考

Azure AD 图形 API 帮助程序库