Использование System.AccessToken для создания конечной точки службы - PullRequest
0 голосов
/ 05 октября 2018

В настоящее время мы используем определенное имя пользователя и PAT для выполнения вызовов API REST Azure DevOps, но это не очень хорошее решение с точки зрения обслуживания и хрупкости.Вместо этого мы хотели бы использовать токен OAuth.

Один случай, с которым мы сталкиваемся, - это попытка создать конечные точки службы из нашего конвейера.Я могу проверить, хорошо ли существует конечная точка из нашего скрипта Powershell, используя:

Invoke-RestMethod -Uri https://xxx.visualstudio.com/projectname/_apis/serviceendpoint/endpoints?api-version=5.0-preview.2 -Method Get -ContentType "application/json" -Headers @{Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"} -Verbose -Debug

К сожалению, когда я пытаюсь использовать следующее для создания конечной точки, если она не существует, я получаю 403(Запрещено).Это вызов:

Invoke-RestMethod -Uri https://xxx.visualstudio.com/projectname/_apis/serviceendpoint/endpoints?api-version=5.0-preview.2 -Method Post -ContentType "application/json" -Headers @{Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"} -Body $RequestBody -Verbose -Debug

Похоже, что пользователь, вызывающий это, не имеет прав для создания ресурсов (или, по крайней мере, конечных точек службы).Я один из тех, кто запускает релиз, но я не верю, что это мой доступ, потому что я администратор всей организации и могу делать практически все, что угодно.Я также изменил доступ пользователя встроенной службы Project Collection Build Service к конвейеру выпуска, чтобы иметь полный доступ и все еще получать проблему.Разве то, что я пытаюсь достичь, не возможно?

1 Ответ

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

Токен доступа OAuth создается с учетной записью «Служба сборки коллекции проектов (xxx)», а не с вашей учетной записью, поэтому вам нужно дать разрешение учетной записи «Служба сборки коллекции проекта (xxx)» для создания конечной точки службы.

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