适用于托管标识身份验证的客户端库

本文档概述了可用于对应用程序(使用了 Azure 资源托管标识)进行身份验证的客户端库。 这些库包括 Azure 标识库和 Microsoft 身份验证库 (MSAL)。

某些 Azure 服务在这些库的基础上构建了客户端库。 例如,Microsoft.Data.SqlClient 包可用于对使用了托管标识的 Azure SQL 数据库进行身份验证。 后台正在使用适用于 .NET 的 Azure 标识库。

选择合适的库

与 Azure 标识库等库相比,MSAL 库提供的抽象级别更低。 MSAL 库和 Azure 标识库都允许通过托管标识获取令牌。 在内部,Azure 标识库会使用 MSAL 并提供更高级别的 API(例如 DefaultAzureCredential),可在开发和部署应用程序时,免于在标识类型之间实现手动切换。

  • 如果应用程序已使用其中一个库,则继续使用同一库。
  • 如果要开发新的应用程序并计划调用其他 Azure 资源,则使用 Azure 标识库。 此库允许应用在无法使用托管标识的本地开发人员计算机上进行身份验证,从而提供改进的开发人员体验。
  • 如需调用其他下游 Web API(例如 Microsoft Graph 或自己的 Web API),则使用 MSAL。 若是 .NET 应用程序,则使用基于 MSAL 构建的 Microsoft.Identity.Web 库。

如果 Azure 服务基于这些库构建了客户端库,则考虑使用服务特定的客户端库。 例如,对于 Azure SQL,则使用 Microsoft.Data.SqlClient 包。

特定语言 API 参考

语言 Azure 标识 MSAL
.NET 适用于 .NET 的 Azure 标识客户端库 MSAL NET
C++ 适用于 C++ 的 Azure 标识客户端库
Java 适用于 Java 的 Azure 标识客户端库 MSAL Java
JavaScript 适用于 JavaScript 的 Azure 标识客户端库 MSAL JavaScript
Python 适用于 Python 的 Azure 标识客户端库 MSAL Python
Go 适用于 Go 的 Azure 标识客户端库 MSAL Go