0

我正在尝试在 azure 中更新 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 分钟的延迟。

4

1 回答 1

0

好吧,对不起,但你没有权限做你正在做的事情:) 检查你是你认为你是谁的一种方法是执行以下操作:

Get-AzAdUser -ObjectId <id_from_error>

并验证您是否正在恢复相同的用户。值得检查的另一件事是许可;)也许您错误地将权利授予了另一个实体

于 2018-10-22T04:36:53.470 回答