Почему я не могу получить доступ к службе аналитики VSTS, хотя у меня есть достаточные разрешения
Я пытаюсь позвонить из сценария powershell в API-интерфейс аналитики от моего частного агента и получаю следующее сообщение об ошибке:[error]Invoke-RestMethod : {"error":{"code":"0","message":"Using this service requires \"View Analytics\" permission on
Я проверил свои настройки безопасности для "Просмотр аналитики", и он говорит "Разрешить".
В PAT, к которому я настроил свой частный агент, включены все области действия.
Я могу получить доступ к этому API через Postman, используя другой PAT с авторизацией Basic.
Кроме того, если я изменю свой заголовок в моем скрипте powershell с:
$header = @{Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"}
чтобы:
$header = @{Authorization = "Basic <hard coded base64 encoded string used in the header for my Postman queries>"}
оно работает.
Вопрос: что происходит?
1 ответ
System_Accesstoken
это токен, который генерируется динамически во время сборки / выпуска, это не токен, который вы использовали для настройки агента.
Токен, который вы использовали для настройки агента, используется только для начальной настройки агента.
Чтобы предоставить разрешение учетной записи службы для сборки / выпуска:
- Перейти на страницу безопасности командного проекта
- Тип
project collection build service
в поле поиска пользователей и групп фильтра и выберитеProject Collection build Service (xxx)
пользователь (не группа) - Задавать
View analytics
позволять.
Вам необходимо предоставить скриптам разрешения доступ к токену OAuth. Для этого перейдите в свой конвейер, выберите этап и на "Запускать на агенте" включите "Разрешить сценариям доступ к токену OAuth".
Как разрешить скриптам доступ к токену OAuth
Помимо этого, вы должны предоставить доступ пользователю "Project Collection build Service (xxx)" для желаемого запроса, в данном случае "Просмотр аналитики", но это может быть редактирование группы задач, редактирование конвейера и т. Д.