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 应用程序 | |
安卓 | ADAL | Maven | GitHub | Android 应用程序 | JavaDocs |
Node.js | ADAL | npm | GitHub | Node.js Web 应用 | 参考 |
爪哇岛 | 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 | OWIN for WS-Federation | NuGet | GitHub | MVC Web App | |
.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。
另请参阅
- Azure Active Directory 开发人员指南
- Azure Active Directory 的 身份验证方案
- Azure Active Directory 代码示例