【问题标题】:TF400813: The user '' is not authorized to access this resource when using System.AccessToken in Azure DevOps pipelineTF400813: 在 Azure DevOps 管道中使用 System.AccessToken 时,用户 '' 无权访问此资源
【发布时间】:2020-11-11 18:40:15
【问题描述】:

在我的管道中,我使用System.AccessToken 作为令牌来调用Release Deployment API,使用azure-devops-node-api

它直到最近才工作,但现在由于上述错误而 100% 失败。我在https://docs.microsoft.com/en-us/azure/devops/pipelines/process/access-tokens?view=azure-devops&tabs=yaml#job-authorization-scope 之后检查了令牌的范围,但没有任何改变。关于如何调试这个有什么建议吗?

【问题讨论】:

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


    【解决方案1】:

    我用不同的包来面对这个问题(取决于azure-devops-node-api) 您的问题很可能是相同的,并且与此潜在问题有关: https://github.com/microsoft/azure-devops-node-api/issues/419

    如果可能,恢复到 azure-devops-node-api 的 1.7.3 版应该可以解决这个问题。

    【讨论】:

    • 非常感谢。你为我节省了很多时间!我尝试的另一种解决方法是将allowCrossOriginAuthentication 设置为true,如票证中所述
    • 啊,是的,如果设置这是一个选项,那也可以。对于我的问题,这不是一个选项,因为 azure-devops-node-api 是我正在使用的包的依赖项。
    【解决方案2】:

    因为''里面什么都没有,很可能系统将你的访问识别为匿名访问。有时,在使用代理或重新配置默认组织和项目时会出现此问题。

    以下是一些帮助您调试此问题的方法:

    1. 在您的管道中将 system.debug 变量设置为 true,并选中“让用户在运行此管道时覆盖此值”选项。这将显示更完整的运行日志以检查问题。

    2. 使用网页调试工具Fiddler

    3. 打开浏览器的开发者控制台(通常是 F12)运行管道并逐行检查。

    【讨论】:

    • 我正在使用代理,但我无权访问。我尝试打印出 System.AccessToken 信息,其长度为 1010 个字符。所以令牌没有丢失。我如何知道更改了哪个配置?我查看了授权范围设置,它们看起来正确
    • @Motoko 你可以看看 Merlin Liang 对this question 的回答。问题的确切原因可以通过网络诊断来确定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    相关资源
    最近更新 更多