Azure Active Directory 身份验证库

通过 Azure Active Directory Authentication Library (ADAL),应用程序开发者可以让用户通过云或本地 Active Directory (AD) 的身份验证,并获取令牌来保护 API 调用。 ADAL 通过以下功能使开发者更轻松地进行身份验证:

  • 存储访问令牌和刷新令牌的可配置令牌缓存
  • 当访问令牌过期且刷新令牌可用时,自动刷新令牌
  • 支持异步方法调用
  • 更多

Note

在找 Azure AD v2.0 库 (MSAL) 吗? 请参阅 MSAL 库指南

客户端库

平台 下载 源代码 示例 引用
.NET 客户端、Windows 应用商店、UWP、Xamarin iOS 和 Android ADAL .NET v3 NuGet GitHub 桌面应用 参考
.NET 客户端、Windows 应用商店、Windows Phone 8.1 ADAL .NET v2 NuGet GitHub 桌面应用
JavaScript ADAL.js GitHub GitHub 单页应用
iOS、macOS ADAL GitHub GitHub iOS 应用 参考
Android ADAL 中央存储库 GitHub Android 应用 JavaDocs
Node.js ADAL npm GitHub
Java ADAL4J GitHub GitHub Java Web 应用
Python ADAL GitHub GitHub

服务器库

平台 下载 源代码 示例 引用
.NET OWIN for AzureAD NuGet CodePlex MVC 应用
.NET OWIN for OpenIDConnect NuGet CodePlex Web 应用
Node.js Azure AD Passport npm GitHub Web API
.NET 用于 WS 联合身份验证的 OWIN NuGet CodePlex MVC Web 应用
.NET 适用于 .NET 4.5 的标识协议扩展 NuGet GitHub
.NET 适用于 .NET 4.5 的 JWT 处理程序 NuGet GitHub

v2.0 客户端库 (MSAL)

Azure AD v2.0 终结点在一个终结点后结合了 Azure AD 和 Microsoft 帐户。 若要访问此终结点,开发者可以使用支持生产的预览版 MSAL 库(而不是 ADAL)。

平台 下载 源代码 示例 引用
.NET 客户端、Windows 应用商店、UWP、Xamarin iOS 和 Android 适用于 NET 的 MSAL(预览版) NuGet GitHub 桌面应用 引用
JavaScript 适用于 JavaScript 的 MSAL(预览版) GitHub GitHub 单页应用 引用
iOS 适用于 iOS 的 MSAL(预览版) GitHub GitHub iOS 应用 引用
Android 适用于 Android 的 MSAL(预览版) GitHub GitHub Android 应用 引用

方案

以下是可以使用 ADAL 对访问远程资源的客户端进行身份验证的三种常见方案:

对设备上运行的本机客户端应用程序的用户进行身份验证

在此方案中,开发人员有一个 WPF 客户端应用程序需要访问由 Azure AD 保护的远程资源(如 Web API)。 他有一个 Azure 订阅,知道如何调用下游 Web API,还知道 Web API 使用哪个 Azure AD 租户。 因此,他可以通过将身份验证体验完全委托给 ADAL 或通过显式处理用户凭据,来使用 ADAL 实现通过 Azure AD 进行身份验证。 使用 ADAL 可以轻松地对用户进行身份验证,从 Azure AD 获取访问令牌和刷新令牌,然后使用访问令牌向 Web API 发出请求。

有关使用 Azure AD 身份验证演示此方案的代码示例,请参阅本机客户端 WPF 应用程序到 Web API

对 Web 服务器上运行的机密客户端应用程序进行身份验证

在此方案中,开发人员在服务器上有一个正在运行的应用程序需要访问由 Azure AD 保护的远程资源(如 Web API)。 他有一个 Azure 订阅,知道如何调用下游服务,还知道 Web API 使用哪个 Azure AD 租户。 因此,他可以显式处理应用程序的凭据,使用 ADAL 促成通过 Azure AD 的身份验证。 使用 ADAL 可以轻松地使用应用程序的客户端凭据从 Azure AD 中检索令牌,并使用该令牌向 Web API 发出请求。 ADAL 还通过缓存访问令牌并在必要时续订它,来处理对访问令牌生存期的管理。 有关演示此方案的代码示例,请参阅守护程序控制台应用程序到 Web API

代表用户对服务器上运行的机密客户端应用程序进行身份验证

在此方案中,开发人员在服务器上有一个正在运行的应用程序需要访问由 Azure AD 保护的远程资源(如 Web API)。 也需要代表 Azure AD 用户发出请求。 他有一个 Azure 订阅,知道如何调用下游 Web API,还知道服务使用哪个 Azure AD 租户。 用户通过 Web 应用程序的身份验证后,应用程序可以从 Azure AD 获取该用户的授权代码。 然后,Web 应用程序可以使用该授权代码以及与应用程序关联的客户端凭据,代表用户通过 ADAL 从 Azure AD 中获取访问令牌和刷新令牌。 Web 应用程序拥有访问令牌后,就可以调用 Web API,直到该令牌过期。 令牌过期后,Web 应用程序可以使用前面收到的刷新令牌,通过 ADAL 获取新的访问令牌。 有关演示此方案的代码示例,请参阅本机客户端到 Web API 到 Web API

另请参阅