Ошибка авторизации при назначении роли веб-приложению с использованием VSTS

#azure #powershell #azure-devops

#azure #powershell #azure-devops

Вопрос:

Я пытаюсь назначить роль веб-приложению Azure с помощью VSTS.

 New-AzureRmRoleAssignment -ObjectId 976a5114-xxxx-xxxx-xxxx-7403ef25ac29 -RoleDefinitionName "Reader" -Scope "/subscriptions/4364666b-xxxx-xxxx-xxxx-47158904c439/resourceGroups/devt002RG/providers/Microsoft.Storage/storageAccounts/devt002"
  

Ошибка :

 2019-03-26T09:26:16.5246563Z ##[error]The client 'a78361e3-xxxx-xxxx-xxxx-fb0ced07865c' with object id 'a78361e3-xxxx-xxxx-xxxx-fb0ced07865c' does not have authorization to perform action 'Microsoft.Authorization/roleAssignments/write' over scope '/subscriptions/4364666b-xxxx-xxxx-xxxx-47158904c439/resourceGroups/devt002RG/providers/Microsoft.Storage/storageAccounts/devt002/providers/Microsoft.Authorization/roleAssignments/466c9ad5-xxxx-xxxx-xxxx-c0ff4051db14'.
  

Я являюсь владельцем подписки 4364666b-xxxx-xxxx-xxxx-47158904c439

Примечание: При запуске с использованием облачной оболочки работает нормально.

Комментарии:

1. Используете ли вы одного и того же участника службы для входа как в VSTS, так и в облачной оболочке?

Ответ №1:

Сначала у вас должно быть разрешение владельца вашей подписки, а затем войдите в систему с помощью участника-службы через Azure PowerShell. Таким образом, вы можете назначить роль Reader своей учетной записи хранилища.

Я могу повторно отобразить полученную вами ошибку, а затем достичь вашей цели. Ниже приведен скриншот процесса:

Ошибка, которую вы получили: введите описание изображения здесь

Получите разрешение владельца вашей подписки, а затем войдите в систему с помощью участника-службы в новом сеансе PowerShell: введите описание изображения здесь

Назначьте роль Reader своей учетной записи хранилища: введите описание изображения здесь

Существует исключение, но роль создана. введите описание изображения здесь

Примечание: Когда вы находитесь в облачной оболочке Azure, вы уже входите в Azure со своей учетной записью Azure по умолчанию, а не с участником службы.

Комментарии:

1. Когда я запускаю команду Connect-AzAccount, она показывает мне сообщение об ошибке — Connect-AzAccount: AADSTS700016: Приложение с идентификатором ‘raj.negi’ не найдено в каталоге ‘adb48caa-xxxx-xxxx-xxxx-a5e508c807f5’. Это может произойти, если приложение не было установлено администратором клиента или с согласия любого пользователя в клиенте. Возможно, вы отправили запрос на проверку подлинности не тому клиенту.

2. @rAJ Вы должны использовать идентификатор объекта, а не идентификатор приложения.

3. Я использую ‘Connect-AzAccount -Credential $ Credential -Tenant «adb48caa-xxxx-xxxx-xxxx-a5e508c807f5» -ServicePrincipal’ с идентификатором клиента. Куда поместить идентификатор объекта?

4. @rAJ Извините, я имею в виду назначить роль с идентификатором объекта, разве ваш участник службы не находится в одном клиенте с вашей учетной записью хранилища?

5. У меня только один клиент, и я использую одни и те же учетные данные для входа в powershell, а также в VSTS.