azure - 使用用户凭据从 Windows 桌面应用程序调用 azure 资源管理器存储 API

标签 azure azure-storage azure-resource-manager

我想从 azure 资源管理器调用此 API 来获取存储 key : https://learn.microsoft.com/en-us/rest/api/storagerp/storageaccounts/listkeys

我想对这次调用使用用户身份验证,也可能使用 .net sdk。 是否有任何 .net sdk(Nuget 包)我可以包含在我的 c# 项目中来调用此 API?我看到许多使用 .net sdk 的解决方案,但它们使用 AAD 应用程序 key ,但我无法在应用程序中使用 key ,因为它是桌面应用程序。我认为应该有一种方法可以通过用户身份验证和.net sdk 来调用这些 API。

最佳答案

.NET 库的 Microsoft.Azure.Services.AppAuthentication 可能会满足您的要求。它使用开发人员的凭据在本地开发期间进行身份验证。当解决方案稍后部署到 Azure 时,该库会自动切换到应用程序凭据。

Microsoft.Azure.Services.AppAuthentication 库支持使用 Microsoft Visual Studio、Azure CLI 或 Azure AD 集成身份验证进行本地开发。

示例:

using Microsoft.Azure.Management.Storage;
using Microsoft.Azure.Services.AppAuthentication;
using Microsoft.Rest;

namespace ConsoleApp6
{
    class Program
    {
        static void Main(string[] args)
        {
            AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
            string accessToken = azureServiceTokenProvider.GetAccessTokenAsync("https://management.azure.com/").Result;
            var Credentials = new TokenCredentials(accessToken);
            var storageManagementClient = new StorageManagementClient(Credentials);
            storageManagementClient.SubscriptionId = "subscription id";
            var storageAccountKey = storageManagementClient.StorageAccounts.ListKeysAsync("resource grouop name", "storage account name");
            string storage_Account_Key = storageAccountKey.Result.Keys[0].Value;
            System.Console.WriteLine(storage_Account_Key);
        }
    }
}

enter image description here

有关身份验证的更多详细信息,您可以查看此 link .

关于azure - 使用用户凭据从 Windows 桌面应用程序调用 azure 资源管理器存储 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55272799/

相关文章:

azure - Linq to Entities,当我尝试使用 group .. 时操作超时

c# - 对于Azure Key Vault,我应该在哪里存储tenantId、clientId和clientSecret?

azure - 将点查询连接在一起时 Azure 表存储中的性能不可靠

azure - 如何在 Azure 资源管理器模板中使用现有的 Microsoft.Web/serverfarms?

azure - DBFS AZURE Databricks - 文件存储和 DBFS 的差异

azure - 如何在门户 Azure 中添加自定义域?

azure - 将 Azure 文件共享映射到 Azure Runbook 本地驱动器以用作临时存储

c# - 在Azure blockBlob上设置CacheControl,如何在部署新文件时失效?

Azure KeyVaultAccessForbidden - "not enabled for deployment"

azure - 将 SQL Server 数据库从 Rackspace 云迁移到 Microsoft Azure