Azure.Identity 是用于 .NET 的 Azure SDK 身份认证库,目标是为 Azure SDK 客户端提供基于 Microsoft Entra ID(原 Azure AD)的身份验证能力。当前版本为稳定版 v1.17.1,预览版 v1.18.0-beta.2。
用途 该库用于在 .NET 应用中为 Azure SDK 客户端获取和提供凭据。它支持多种身份验证方式,并可通过 DefaultAzureCredential 在本地开发与云端生产环境之间切换,而无需修改代码中的凭据获取逻辑。
安装方式 可通过 .NET CLI 安装:dotnet add package Azure.Identity。若用于 ASP.NET Core,可安装 dotnet add package Microsoft.Extensions.Azure。若需要 Windows 上的代理身份验证(brokered authentication),可安装 dotnet add package Azure.Identity.Broker。
主要能力 支持多种凭据类型:DefaultAzureCredential(推荐用于大多数场景,按顺序尝试环境凭据、工作负载标识、托管标识、Visual Studio、Visual Studio Code、Azure CLI、Azure PowerShell、Azure Developer CLI 等,InteractiveBrowserCredential 默认不启用);ManagedIdentityCredential(系统分配或用户分配);ClientSecretCredential;ClientCertificateCredential;ChainedTokenCredential(自定义凭据链);以及 AzureCliCredential、AzurePowerShellCredential、AzureDeveloperCliCredential、VisualStudioCredential、InteractiveBrowserCredential 等开发者凭据。还支持主权云(如 AzureGovernment)的 AuthorityHost 配置。
使用方式 基本用法是创建 DefaultAzureCredential 实例并传入 Azure SDK 客户端,例如 BlobServiceClient。在 ASP.NET Core 中可通过 Microsoft.Extensions.Azure 的 AddAzureClients 与 UseCredential 注入凭据。DefaultAzureCredential 可通过 DefaultAzureCredentialOptions 排除或启用特定凭据、指定 TenantId、ManagedIdentityClientId 等。也可基于环境变量配置服务主体(客户端密钥或证书)和托管标识。示例代码(保持原样):
using Azure.Identity; using Azure.Storage.Blobs;
var credential = new DefaultAzureCredential(); var blobClient = new BlobServiceClient( new Uri("https://myaccount.blob.core.windows.net"), credential);
环境变量示例:服务主体使用密钥时设置 AZURE_CLIENT_ID、AZURE_TENANT_ID、AZURE_CLIENT_SECRET;使用证书时设置 AZURE_CLIENT_ID、AZURE_TENANT_ID、AZURE_CLIENT_CERTIFICATE_PATH、AZURE_CLIENT_CERTIFICATE_PASSWORD(可选);托管标识仅用户分配时设置 AZURE_CLIENT_ID。
适用场景 适用于 .NET 应用访问 Azure 服务时的统一身份认证,包括本地开发(使用开发者凭据)与 Azure 生产环境(使用托管标识);也适用于 ASP.NET Core 依赖注入、需要自定义凭据优先级、以及需要连接 Azure 政府云等主权云的场景。
限制与说明 文档未提供关于价格、收费、性能指标或具体使用效果的说明,相关内容暂未提供。