Azure Active Directory 身份验证库

警告

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

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

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

注意

正在寻找 Azure AD v2.0 库? 请参阅 MSAL 库指南

警告

Azure Directory 身份验证库 (ADAL) 已弃用。 请使用 Microsoft 身份验证库 (MSAL)。 如果有使用 ADAL 的现有应用程序,请确保将其迁移到 MSAL

Microsoft 支持的客户端库

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

Microsoft 支持的服务器库

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

方案

以下是在访问远程资源的客户端中使用 ADAL 的三种常见方案:

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

在此方案中,开发人员有一个移动客户端或桌面应用程序需要访问远程资源(如 Web API)。 该 Web API 不允许匿名调用,并且必须在经过身份验证的用户的上下文中调用。 该 Web API 已预先配置为信任由特定 Azure AD 租户颁发的访问令牌。 Azure AD 已预先配置为颁发该资源的访问令牌。 若要从客户端调用 Web API,开发人员可使用 ADAL 来简化 Azure AD 的身份验证。 使用 ADAL 最安全的方法是使其呈现用于收集用户凭据的用户界面(呈现为浏览器窗口)。

使用 ADAL 可以轻松地对用户进行身份验证,从 Azure AD 获取访问令牌和刷新令牌,然后使用访问令牌调用 Web API。

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

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

在此方案中,开发人员在服务器上有一个正在运行的应用程序需要访问远程资源(如 Web API)。 该 Web API 不允许匿名调用,因此必须从授权服务中调用它。 该 Web API 已预先配置为信任由特定 Azure AD 租户颁发的访问令牌。 Azure AD 已预先配置为向具有客户端凭据(客户端 ID 和密码)的服务颁发该资源的访问令牌。 ADAL 可简化 Azure AD 对服务的身份验证,并返回可用于调用该 Web API 的访问令牌。 ADAL 还通过缓存访问令牌并在必要时续订它,来处理对访问令牌生存期的管理。 有关演示此方案的代码示例,请参阅守护程序控制台应用程序到 Web API

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

在此方案中,开发人员在服务器上有一个正在运行的 Web 应用程序需要访问远程资源(如 Web API)。 该 Web API 不允许匿名调用,因此必须以经过身份验证的用户身份从授权服务中调用它。 该 Web API 已预先配置为信任由特定 Microsoft Entra 租户颁发的访问令牌,而 Microsoft Entra ID 已预先配置为向具有客户端凭据的服务颁发该资源的访问令牌。 用户在 Web 应用程序中进行身份验证后,应用程序可以从 Microsoft Entra ID 获取该用户的授权代码。 然后,Web 应用程序可以使用该授权代码以及与应用程序关联的客户端凭据,代表用户通过 ADAL 从 Microsoft Entra ID 中获取访问令牌和刷新令牌。 Web 应用程序拥有访问令牌后,就可以调用 Web API,直到该令牌过期。 令牌过期后,Web 应用程序可以使用前面收到的刷新令牌,通过 ADAL 获取新的访问令牌。 有关演示此方案的代码示例,请参阅本机客户端到 Web API 到 Web API

另请参阅