使用 System.AccessToken 创建服务端点

2023-12-08

目前,我们使用特定的用户名和 PAT 来进行 Azure DevOps REST API 调用,但从维护和脆弱性的角度来看,这不是一个好的解决方案。我们想改用 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

看起来调用此方法的用户没有创建资源(或至少是服务端点)的权限。我是运行该版本的人,但我不认为这是我的访问权限,因为我是整个组织的管理员,几乎可以做任何事情。我还修改了内置项目集合构建服务用户对发布管道的访问权限,以获得完全访问权限,但仍然遇到问题。我想要实现的目标是不可能的吗?


OAuth 访问令牌是使用“Project Collection Build Service(xxx)”帐户创建的,而不是您的帐户,因此您需要授予“Project Collection Build Service(xxx)”帐户创建服务端点的权限。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 System.AccessToken 创建服务端点 的相关文章

随机推荐