Я новичок в Microsoft Azure.
Я пытаюсь использовать их API для DNS. Спустя долгое время я наконец нашел, как создать приложение и как получить все необходимые ключи. Я также добавил разрешение (на данный момент я добавил все разрешения для своих тестов), но у меня следующая ошибка:
The client 'xxx' with object id 'xxx' does not have authorization to perform action 'Microsoft.Network/dnsZones/read' over scope '/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Network/dnsZones/xxx'.
Я думал, что это проблема с разрешением, но я добавил все возможные разрешения в приложение. Я не особо разбираюсь в Active Directory.
Кто-нибудь может мне помочь ? Большое спасибо.
Обновлено:
Что я сделал:
Создайте приложение: Azure Active Directory> Регистрация приложения> Добавить> Создать.
Добавьте разрешения: Azure Active Directory> Регистрация приложения> Просмотреть все приложения> Мое приложение> Параметры> Требуемые разрешения> Windows Azure Active Directory> Проверить все разрешения приложений и все делегированные разрешения> Сохранить> Предоставить разрешение.
Создание ролей: Подписки> Моя подписка> Контроль доступа (IAM)> Добавить> Выбрать роль «Участник зоны DNS»> Назначить моему пользователю.
Я что-то делаю не так?
Это означает, что у вас нет разрешений. :)
Вам необходимо это разрешение: Microsoft.Network/dnsZones/read
в этой области: /subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Network/dnsZones/xxx
вы можете предоставить именно эти разрешения с помощью настраиваемой роли или использовать одну из встроенных ролей.
https://docs.microsoft.com/en-us/azure/role-based-access-control/rbac-and-directory-admin-roles
https://docs.microsoft.com/en-us/azure/role-based-access-control/custom-roles
это означает, что вы не предоставили разрешения пользователю \ принципалу, которого используете. вы дали его не тому пользователю \ неправильной области \ и т. д.
Я редактирую свой вопрос, чтобы объяснить, что я сделал. Это правильно ?
вам нужно назначать разрешения не вашему пользователю, а приложению. вы можете использовать objectId, указанный в тексте ошибки
вы можете использовать для этого powershell: docs.microsoft.com/en-us/powershell/azure/… вы можете попробовать с порталом, используя имя службы princiapl \ objectid
Хорошо, я нашел это. Я назначаю своему приложению роль DNS Zone Contributor
, и оно работает
Я использовал встроенную роль (эта: docs.microsoft.com/en-us/azure/role-based-access-control/…), но у меня все еще есть ошибка.