我想从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。
用于.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);
}
}
}
有关身份验证的更多详细信息,您可以查看此link。