【问题标题】:Getting Error 403 Trying to update PAT on Azure Devops尝试在 Azure Devops 上更新 PAT 时出现错误 403
【发布时间】:2022-10-24 18:04:18
【问题描述】:

根据 MS 提供的文档 (https://learn.microsoft.com/en-us/rest/api/azure/devops/tokens/pats/update?view=azure-devops-rest-7.1&tabs=HTTP),我正在尝试通过 api 更新我的令牌到期日期。我使用完全访问令牌发出了一个示例请求,以进行身份​​验证并传递要在正文中更新的令牌的 authorizationId:

My sample request using Postman

它不断返回错误 403,我检查了我的组织政策并尝试从正文中添加或删除参数,但它不起作用。 我还提出了另一个请求,以获取具有相同令牌授权和 api 版本的组织中的令牌列表,并且进展顺利。

【问题讨论】:

  • 虽然它说“对用户名使用任何值......”您是否尝试在“用户名”字段中添加一些内容而不是将其留空?
  • @joelforsyth 感谢您的回答。是的,我也尝试使用虚拟用户名
  • 由于错误是 403(而不是 401),这通常意味着您具有正确的身份验证,而不是授权.由于您能够毫无问题地执行 GET,我的下一个猜测是权限或访问问题。这些策略可能是正确的,但它可能会触及表面上不明显的其他 Azure 资源。但除此之外很难诊断

标签: azure-devops azure-devops-rest-api


【解决方案1】:

根据您的屏幕截图,您正在使用带有 PAT 的 Basic Auth

请注意,您必须使用 Azure AD token 进行身份验证才能使用此 API 而不是 PAT 令牌。为了直接调用 API,您需要在请求的 Authorization header 中提供一个 Azure AD 访问令牌作为 Bearer 令牌。详情请参阅Manage personal access tokens (PATs) using REST APIQ: Can I use basic auth with all Azure DevOps REST APIs?

您可以按照以下步骤获取 AAD Bearer 令牌:

  1. 安装Azure Az PowerShell module
  2. 使用在您的 DevOps 组织(所有者或 PCA)中具有权限的用户帐户登录,并使用命令 Connect-AzAccount
    • 1.) 交替使用命令Connect-AzAccount -UseDeviceAuthentication 从云外壳登录,您将看到以下消息:

    • 2.)然后复制网址https://microsoft.com/devicelogin并在新的水龙头中打开,输入代码IVR7VRWJQ进行身份验证。

    • 3.) 使用 Azure DevOps 组织所有者或其他 PCA 帐户登录。登录成功后,您将看到账户信息,然后按照以下步骤获取 Bearer Token。

    1. 获取承载令牌:

      $token = (Get-AzAccessToken -ResourceUrl "499b84ac-1321-427f-aa17-267ca6975798").Token

      $token

    2. 复制并使用脚本或 Postman 中的令牌来更新 PAT。

【讨论】:

  • 感谢您的全面回答安迪!我能够以这种方式获取不记名令牌并将其复制给邮递员,但我得到了 203 非授权信息。根据您提供的文档,我尝试为 api 设置 Oauth2 授权,将邮递员添加到我的 Azure AD 应用程序,但结果相同
  • 我按照此链接 dev.to/425show/… 上的指南向 api 发出请求。还是 403 非权威信息
  • @Rodri 请确保在尝试生成令牌时已将范围设置为 "499b84ac-1321-427f-aa17-267ca6975798/.default"
  • 但是 Get-AzAccessToken 不允许指定范围对吗?
  • @Rodri 如果登录用户具有访问 Azure DevOps 组织的正确权限,则默认设置范围为 "499b84ac-1321-427f-aa17-267ca6975798/.default"。这是获取 AAD 不记名令牌的最简单方法。例如,Connect-AzAccount 与所有者帐户。如果您单独注册应用程序,请确保您已将范围设置为“499b84ac-1321-427f-aa17-267ca6975798/.default”
猜你喜欢
  • 2021-09-07
  • 2017-07-28
  • 1970-01-01
  • 2020-10-01
  • 1970-01-01
  • 2016-04-19
  • 1970-01-01
  • 2015-12-04
  • 1970-01-01
相关资源
最近更新 更多