![](/img/trans.png)
[英]Azure Function with App Config and managed identity - how to debug locally
[英]Azure Managed Identity local debug authentication failure
我有一个非常基本的例子,我似乎无法工作。 我使用的用户是订阅所有者,因此应该可以访问所有内容。 如果我尝试实际获取其摔倒的blob文本时运行以下命令:
StorageException:服务器无法验证请求。 确保包括签名在内的Authorization标头的值正确形成。
using Microsoft.Azure.Services.AppAuthentication;
using Microsoft.WindowsAzure.Storage.Auth;
using Microsoft.WindowsAzure.Storage.Blob;
using System;
using System.Threading;
using System.Threading.Tasks;
namespace testmsistorageaccess
{
class Program
{
public static void Main()
{
AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
var tokenAndFrequency = TokenRenewerAsync(azureServiceTokenProvider,
CancellationToken.None).GetAwaiter().GetResult();
TokenCredential tokenCredential = new TokenCredential(tokenAndFrequency.Token,
TokenRenewerAsync,
azureServiceTokenProvider,
tokenAndFrequency.Frequency.Value);
StorageCredentials storageCredentials = new StorageCredentials(tokenCredential);
var storageUri = new Uri("https://mystorageaccount.blob.core.windows.net");
var client = new CloudBlobClient(storageUri, storageCredentials);
var container = client.GetContainerReference("bob");
string content = container.GetBlockBlobReference("bob.xml").DownloadTextAsync().Result;
Console.WriteLine($"Got {content}");
}
private static async Task<NewTokenAndFrequency> TokenRenewerAsync(Object state, CancellationToken cancellationToken)
{
const string StorageResource = "https://storage.azure.com/";
var authResult = await ((AzureServiceTokenProvider)state).GetAuthenticationResultAsync(StorageResource);
var next = (authResult.ExpiresOn - DateTimeOffset.UtcNow) - TimeSpan.FromMinutes(5);
if (next.Ticks < 0)
{
next = default(TimeSpan);
}
return new NewTokenAndFrequency(authResult.AccessToken, next);
}
}
}
不确定我在这里做错了什么,我已经检查了它正在尝试使用的用户,并且看起来正确并且具有正确的AD租户ID:
我看到有人提到使用UTCNow在本地计算机上检查时间,并确认它与GMT时间是正确的,除了我没有发现其他有关如何调试时间的信息。
任何帮助表示赞赏
订阅所有者!=数据访问。 您需要向用户添加存储Blob贡献者或存储Blob读取者角色。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.