Azure Active Directory v2.0 身份验证库

Azure Active Directory (Azure AD) v2.0 终结点支持行业标准 OAuth 2.0 和 OpenID Connect 1.0 协议。 可以对 v2.0 终结点使用 Microsoft 和其他组织提供的各种库。

在构建使用 v2.0 终结点的应用程序时,建议使用协议领域的专家根据安全开发生命周期 (SDL) 方法(例如 Microsoft 遵循的方法)编写的库。 如果决定手动编写协议支持,建议遵循 SDL 方法并认真对待每个协议的标准规范中的安全注意事项。

Note

是否在寻找 Azure AD v1.0 库 (ADAL)? 请查看 ADAL 库指南

库的类型

Azure AD v2.0 终结点适用于两种类型的库:

  • 客户端库。 本机客户端和服务器使用客户端库获取用于调用某个资源(例如 Microsoft Graph)的访问令牌。
  • 服务器中间件库。 Web 应用使用服务器中间件库进行用户登录。 Web API 使用服务器中间件库验证本机客户端或其他服务器发送的令牌。

库支持

可以在使用 v2.0 终结点时选择任何符合标准的库,此时必须知道可从何处寻求支持。 有关库代码中的问题和功能请求,请联系库所有者。 有关服务端协议实现中的问题和功能请求,请联系 Microsoft。

库的支持类型有两种:

  • Microsoft 支持。 Microsoft 为这些库提供修补程序,并对这些库进行 SDL 相关工作。
  • 兼容。 Microsoft 已在基本方案中测试这些库并确认它们适用于 v2.0 终结点。 Microsoft 不提供这些库的修复程序,且尚未审查这些库。 问题和功能请求应重定向到库的开源项目。

有关适用于 V2.0 终结点的库列表,请参阅本文的后续部分。

Microsoft 支持的客户端库

Important

MSAL 预览库适用于生产环境。 我们为这些库提供与当前生产库 (ADAL) 相同的生产级别支持。 在预览期间,我们可能会更改这些库的 MSAL API、内部缓存格式和其他机制,恕不另行通知,你将因此需要使用 bug 修复程序或功能改进。 这可能会影响应用程序。 例如,对缓存格式的更改可能会影响用户,例如要求他们重新登录。 API 更改可能要求更新代码。 我们提供正式版时,会要求用户在六个月内更新到正式版,因为使用早期版本库编写的应用程序可能无法再正常运行。

平台 下载 源代码 示例 引用
.NET 客户端、Windows 应用商店、UWP、Xamarin iOS 和 Android MSAL .NET(预览) NuGet GitHub
JavaScript MSAL.js(预览) GitHub GitHub 单页应用
iOS、macOS MSAL(预览) GitHub GitHub iOS 应用
Android MSAL(预览) 中央存储库 GitHub JavaDocs

Microsoft 支持的服务器中间件库

平台 下载 源代码 示例 引用
.NET 4.x OWIN OpenID Connect 中间件 NuGet CodePlex
.NET 4.x 适用于 AzureAD 的 OWIN OAuth Bearer 中间件 NuGet CodePlex
.NET 4.x 适用于 .NET 4.5 的 JWT 处理程序 NuGet GitHub
.NET Core ASP.NET OpenID Connect 中间件 Microsoft.AspNetCore.Authentication.OpenIdConnect (NuGet) ASP.NET 安全性 (GitHub) MVC 应用
.NET Core ASP.NET OAuth Bearer 中间件 Microsoft.AspNetCore.Authentication.OAuth (NuGet) ASP.NET 安全性 (GitHub)
.NET Core 适用于 .NET Core 的 JWT 处理程序 NuGet GitHub
Node.js Azure AD Passport npm GitHub Web 应用

兼容的客户端库

平台 库名称 测试的版本 源代码 示例
Android OIDCAndroidLib 0.2.1 OIDCAndroidLib 本机应用示例
iOS NXOAuth2Client 1.2.8 NXOAuth2Client 本机应用示例
JavaScript Hello.js 1.13.5 Hello.js SPA

兼容的服务器中间件库

平台 库名称 测试的版本 源代码 示例
Java Scribe Java scribejava 版本 3.2.0 ScribeJava
PHP The PHP League oauth2-client 版本 1.4.2 oauth2-client
Python-Flask Flask-OAuthlib 0.9.3 Flask-OAuthlib Web 应用
Ruby OmniAuth omniauth:1.3.1
omniauth-oauth2:1.4.0
OmniAuth
OmniAuth OAuth2

有关 Azure AD v2.0 终结点的详细信息,请参阅 Azure AD 应用模型 v2.0 概述