Почему я не могу получить доступ к службе аналитики 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 это токен, который генерируется динамически во время сборки / выпуска, это не токен, который вы использовали для настройки агента.

Токен, который вы использовали для настройки агента, используется только для начальной настройки агента.

Чтобы предоставить разрешение учетной записи службы для сборки / выпуска:

  1. Перейти на страницу безопасности командного проекта
  2. Тип project collection build service в поле поиска пользователей и групп фильтра и выберите Project Collection build Service (xxx) пользователь (не группа)
  3. Задавать View analytics позволять.

Вам необходимо предоставить скриптам разрешения доступ к токену OAuth. Для этого перейдите в свой конвейер, выберите этап и на "Запускать на агенте" включите "Разрешить сценариям доступ к токену OAuth".

Как разрешить скриптам доступ к токену OAuth

Помимо этого, вы должны предоставить доступ пользователю "Project Collection build Service (xxx)" для желаемого запроса, в данном случае "Просмотр аналитики", но это может быть редактирование группы задач, редактирование конвейера и т. Д.

Другие вопросы по тегам