gpt4 book ai didi

Azure DevOps 的 Powershell Invoke-RestMethod 未使用 PAT 进行身份验证

转载 作者:行者123 更新时间:2023-12-02 23:35:15 25 4
gpt4 key购买 nike

我正在尝试调用我们的 Azure DevOps 项目的 REST API,但我得到了一些我没有预料到的结果。

我可以使用 LinqPad 获得结果,但使用 Powershell 失败。

我的脚本

$env:Build_BuildId = 2468
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes("myPAT"))
$env:System_TeamProject = "myProject"

$url = "https://dev.azure.com/myorg/$env:System_TeamProject/_apis/build/builds/$env:Build_BuildId/changes?api-version=5.0"

$response = Invoke-RestMethod -Uri $url -Method Get -ContentType "application/json" -Headers @{
Authorization = "Basic $token"
}

Write-Host $response

回应

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">




<html lang="en-US">
<head><title>

Azure DevOps Services | Sign In

</title><meta http-equiv="X-UA-Compatible" content="IE=11;&#32;IE=10;&#32;IE=9;&#32;IE=8" />
<link rel="SHORTCUT ICON" href="/favicon.ico"/>

<link data-bundlelength="508485" data-bundlename="commoncss" data-highcontrast="/_static/tfs/M154_20190628.18/_cssbundles/HighContrast/vss-bundle-commoncss-vAEI_yKFIiS9jTVmCtAOiwe4cLPqdXnp6QCUVseU7jzk=" data-includedstyles="jQueryUI-Modified;Core;Splitter;PivotView" href="/_static/tfs/M154_20190628.18/_cssbundles/Default/vss-bundle-commoncss-vqjKBNZxfVQkGGn0rrvF7eh9DJDj__wqtFN85fVrIQn8=" rel="stylesheet" />
<link data-bundlelength="116162" data-bundlename="viewcss" data-highcontrast="/_static/tfs/M154_20190628.18/_cssbundles/HighContrast/vss-bundle-viewcss-v356iHjTFccxhkNidRJIEefQ92VqpWpa7rO4mdtAnDpM=" data-includedstyles="VSS.Controls" href="/_static/tfs/M154_20190628.18/_cssbundles/Default/vss-bundle-viewcss-vXHgBtK2hntEJYzWnMNhcJkJC-nUhp2m3BtF-jVlzOZA=" rel="stylesheet" />
... etc. etc.

我想该请求会得到一个响应,该响应将由浏览器呈现为 azure devops 的登录登录页面。

enter image description here

我对我的 PAT 进行了两次和三次检查,甚至创建了一些新的完全访问版本,但行为没有改变。


这个脚本最终会在托管代理上运行,所以我最终不会太担心这个,但如果我不需要的话,我不想运行管道来测试脚本。

最佳答案

$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes("myPAT")) 不正确。 myPAT 应该有一个前导冒号。

例如:

$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":myPAT"))

关于Azure DevOps 的 Powershell Invoke-RestMethod 未使用 PAT 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56979977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com