我正在尝试更新天蓝色的TXT记录。我正在本地VS2017调试环境中执行此操作,但MSI似乎仍然“起作用”,因为它知道我是谁。但是“ GetAsync”调用失败,告诉我我没有权限。
我在做什么错了?
var tokenprovider = new AzureServiceTokenProvider();
var tok = await tokenprovider.GetAccessTokenAsync("https://management.azure.com/");
client = new DnsManagementClient(new TokenCredentials(tok))
{
SubscriptionId = SubscriptionId
};
var dnsRecord = await Client.RecordSets.GetAsync(ResourceGroup, zoneName, recordName, RecordType.TXT, cancellationToken);
GetAsync调用抛出: Microsoft.Rest.Azure.CloudException:具有对象ID“(我的对象ID)”的客户端“(我的电子邮件地址)”无权执行操作“ Microsoft.Network/dnsZones/TXT/read”范围'/ subscriptions /(我的订阅ID)/ resourceGroups /(我的资源组)/providers/Microsoft.Network/dnsZones/(我的域)/ TXT / _acme-challenge'。”
知道为什么吗?
我已使自己的贡献者可以访问TXT记录。作为订阅所有者,我什至完成了整个工作。但是我仍然得到一个例外,告诉我我没有被授权。
我还仔细检查了订阅/对象/域/ txt名称-它们是正确的。
帮助:)
编辑:经过一段时间的“等待时间”,呼叫突然开始成功。因此要进行测试...我制作了一个新资源,尝试访问它(失败),授予自己访问权限,尝试再次访问它(然后再次失败),然后等待一会儿,稍后再尝试,然后成功。知道为什么会这样吗?
编辑:(5个月后)。找到正确的答案,在这里:https://docs.microsoft.com/en-us/azure/role-based-access-control/troubleshooting#rbac-changes-are-not-being-detected
摆弄角色分配之前,最多延迟30分钟。
答案 0 :(得分:0)
对不起,对不起,但是您没有权限做您正在做的事情:)一种检查自己是谁的方法是:
Get-AzAdUser -ObjectId <id_from_error>
,并验证您是否找回了同一用户。值得检查的另一件事是许可;)也许您错误地将权利授予了另一个实体