Как Azure DnsManagementClient работает с MSI?(AzureServiceTokenProvider) - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь обновить запись 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: «Клиент» (мой адрес электронной почты) «с идентификатором объекта» (мой идентификатор объекта) »не имеет полномочий для выполнения действия« Microsoft.Network/dnsZones/TXT/read »над областью действия / подписки / (моя подписка)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 минут.

1 Ответ

0 голосов
/ 22 октября 2018

хорошо, извините, но у вас нет прав на то, что вы делаете :) один из способов проверить, кто вы есть, сделать что-то вроде:

Get-AzAdUser -ObjectId <id_from_error>

и убедиться, что вывернуть того же пользователя.еще одна вещь, которую стоит проверить - это разрешение;) возможно, вы по ошибке передали права другому лицу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...