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

问题描述 投票:0回答:1

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

我想对此调用使用用户身份验证,并可能使用.net sdk。有没有.net sdk(Nuget包)我可以在我的c#项目中包含这个API吗?我看到许多解决方案正在使用.net sdk,但他们正在使用AAD app秘密,但我不能在应用程序中使用秘密,因为它是一个桌面应用程序。我认为应该有一种方法可以使用用户auth和.net sdk调用这些API。

azure azure-storage azure-resource-manager
1个回答
1
投票

用于.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

© www.soinside.com 2019 - 2024. All rights reserved.