您如何使用 OAuth2 身份验证与 DevOps REST 服务一起使用 API - 服务到服务?
How do you use OAuth2 authentication for use with DevOps REST services API - service to service?
我正在尝试为 ADO REST 调用提供服务,从我的应用程序到 ADO,代表应用程序,而不是登录到它的用户。
Microsoft 提供 REST APIs 来执行创建发布管道等操作。看这里:
文档在这里真的很混乱,因为它指的是 Oauth 2 流程 "accessCode" 据我所知,这不是任何有效类型的流程的名称。
在调用 APIs
的主要文档中
它说请求正文应该是这样的:
client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&client_assertion={0}&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion={1}&redirect_uri={2}
其中
{0}:URL 注册应用程序时获取的编码客户端密码
{1}:URL 编码 "code" 通过代码查询参数提供给您的回调 URL
{2}:回调 URL 注册到应用
这与创建版本的文档(第一个 link)不一致,它说:
类型:oauth2
流程:访问代码
授权URL:https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion
那么首先,有谁知道哪个文档是正确的,第一个还是第二个?
其次,我如何创建服务到服务以从我的应用程序调用,代表应用程序调用这些 API,而不是比用户 ?
我不希望应用程序的用户有权在应用程序内创建发布,因为很多人甚至都不是 ADO 用户,更不用说拥有创建发布的权限了。
我原以为 API 会支持 client_credentials 的 Oauth 2 授权类型(授权代码授权),但我在 ADO REST 的文档中看不到这方面的任何示例服务。
要对您的 Web 应用程序用户进行 REST API 访问身份验证,您应该遵循以下文档:
首先,注册您的 Web 应用程序并从 Azure DevOps Services 获取应用程序 ID。使用该应用 ID,将您的用户发送到 Azure DevOps Services 以授权您的应用访问他们的组织。接下来,使用该授权为该用户获取访问令牌。当您为该用户调用 Azure DevOps Services APIs 时,请使用该用户的访问令牌。
我正在尝试为 ADO REST 调用提供服务,从我的应用程序到 ADO,代表应用程序,而不是登录到它的用户。
Microsoft 提供 REST APIs 来执行创建发布管道等操作。看这里:
文档在这里真的很混乱,因为它指的是 Oauth 2 流程 "accessCode" 据我所知,这不是任何有效类型的流程的名称。
在调用 APIs
的主要文档中它说请求正文应该是这样的:
client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&client_assertion={0}&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion={1}&redirect_uri={2}
其中
{0}:URL 注册应用程序时获取的编码客户端密码
{1}:URL 编码 "code" 通过代码查询参数提供给您的回调 URL
{2}:回调 URL 注册到应用
这与创建版本的文档(第一个 link)不一致,它说:
类型:oauth2 流程:访问代码
授权URL:https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion
那么首先,有谁知道哪个文档是正确的,第一个还是第二个?
其次,我如何创建服务到服务以从我的应用程序调用,代表应用程序调用这些 API,而不是比用户 ?
我不希望应用程序的用户有权在应用程序内创建发布,因为很多人甚至都不是 ADO 用户,更不用说拥有创建发布的权限了。
我原以为 API 会支持 client_credentials 的 Oauth 2 授权类型(授权代码授权),但我在 ADO REST 的文档中看不到这方面的任何示例服务。
要对您的 Web 应用程序用户进行 REST API 访问身份验证,您应该遵循以下文档:
首先,注册您的 Web 应用程序并从 Azure DevOps Services 获取应用程序 ID。使用该应用 ID,将您的用户发送到 Azure DevOps Services 以授权您的应用访问他们的组织。接下来,使用该授权为该用户获取访问令牌。当您为该用户调用 Azure DevOps Services APIs 时,请使用该用户的访问令牌。