如何简单地获取不记名令牌来向 Azure DevOps API 发送请求?

Pac*_*ac0 5 oauth oauth-2.0 postman azure-devops-rest-api

我需要创建一个组织源来托管在我们的 Azure DevOps 环境中的项目之间共享的 nuget 包。

经过几次不成功的尝试和研究后,我发现创建组织提要的唯一方法是根据 Microsoft 口中的设计,Azure DevOps API。

声明来源:VS 开发社区上的这个问题 和项目范围提要上的 MS 文档

基本上,我只需要能够在这里执行 POST : https://feeds.dev.azure.com/ {organization}/_apis/packaging/feeds?api-version=5.1-preview.1

与身体:

{
    "name": "{myfeedname}",
    "hideDeletedPackageVersions": true,
    "upstreamEnabled": true
}
Run Code Online (Sandbox Code Playgroud)

当然,还有一个不记名令牌来验证我自己的身份。这就是我感到困惑的地方。

获得它的最简单方法是什么?我通过我的公司 Microsoft AD 帐户在我的计算机浏览器上登录 Azure DevOps。我在浏览器开发工具中没有看到任何可以“窃取”并在 PostMan 中使用的不记名令牌。

API文档描述了一些相关信息,但我对如何在 Postman 中使用它感到困惑:

安全oauth2

类型:oauth2

流程:访问代码

授权网址:https ://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion

令牌 URL: https: //app.vssps.visualstudio.com/oauth2/token ?client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&grant_type=urn:ietf:params:oauth:grant-type :jwt 承载者

范围 名称 描述

vso.packaging_write 授予创建和读取提要和包的能力。

这是 Postman 中 OAuth2 的接口:

用于设置 OAuth2 的 Postman 接口

我可以看到文档中的信息如何与字段 1 - 2 - 3 - 4 相关,但是,我应该使用什么回调 url?有什么凭据?我的 Microsoft 电子邮件 + AD 密码?

我尝试了这个,我似乎从邮递员那里得到了这个:

{"$id":"1","innerException":null,"message":"A potentially dangerous Request.Path value was detected from the client (&).","typeName":"System.Web.HttpException, System.Web","typeKey":"HttpException","errorCode":0,"eventId":0}
Run Code Online (Sandbox Code Playgroud)

总长DR

如何正确地使用 Postman 或其他工具获取令牌来手动执行对 Azure DevOps REST API 的一次性请求?

注释:

以下信息如下:无法使用 Postman oAuth2.0 获取 Devops 的授权代码 ,导致此处: https: //github.com/Microsoft/azure-devops-auth-samples/tree/master/OAuthWebSample,我知道我必须注册并运行整个 Web 应用程序。我的理解正确吗?我有更简单的方法吗?

Leo*_*SFT 4

我知道我必须注册并运行整个网络应用程序。我的理解正确吗?我有更简单的方法吗?

是的你是对的。您必须注册整个网络应用程序。

作为Postman中的接口OAuth2,我们需要提供CallbackUrl、ClientID、ClientSecret等等。然后,我们查看文档Requesting an OAuth 2.0 token,我们可以知道是Callback URL:

客户端应用程序回调 URL 在身份验证后重定向到,并且应该向 API 提供者注册。

因此,我们必须在 Azure DevOps 中注册一个 OAuth 客户端应用程序 ( https://app.vsaex.visualstudio.com/app/register ),然后我们可以获得以下信息,例如:

在此输入图像描述

您可以查看文档使用 OAuth 2.0 授权访问 VSTS REST API以了解更多详细信息。

AFAIK,目前没有更简单的方法来获取不记名令牌以将请求发送到 Azure DevOps API。

希望这可以帮助。