gpt4 book ai didi

Azure DevOps API OAuth 授权获得 "Object Moved"响应

转载 作者:行者123 更新时间:2023-12-02 05:58:56 25 4
gpt4 key购买 nike

我可以调用这个端点https://dev.azure.com/${MY_ORG}/${MY_PROJECT}/_apis/build/builds/${BUILD_ID}就好了在测试应用程序时使用个人访问 token 进行身份验证。

但对于真正的应用程序,我需要使用服务主体。我创建了服务主体,在 Azure DevOps 项目中创建了服务连接,并为服务主体授予了 Azure DevOps API 权限。我可以使用此端点获得访问 token :

curl -d "grant_type=client_credentials&client_secret=<client_secret>&client_id=<client_id>" 
-X POST https://login.microsoftonline.com/<tenant_id>/oauth2/token

但是当我使用该访问 token 来调用 DevOps API 时:

curl -H "Authorization: Bearer ${TOKEN}" https://dev.azure.com/${MY_ORG}/${MY_PROJECT}/_apis/build/builds/${BUILD_ID}

我得到了这个 html 响应:

<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="https://spsprodcus3.vssps.visualstudio.com/_signin?realm=dev.azure.com&amp;...>here</a>.</h2>
</body></html>

应该如何使用访问 token ?

最佳答案

您遇到的问题是因为您传递的访问 token 无权访问该资源。这将归结于以下事情之一。

  • 您的 token 对于 Azure DevOps 范围无效。
  • 您在 Azure AD 中的应用程序没有 API 的权限。

在 Azure AD 中验证您的应用程序。

  1. 登录 Azure 门户。
  2. 在顶部栏上,点击您的帐户,然后在目录列表下选择您想要注册应用程序的 Active Directory 租户。
  3. 在左侧导航菜单中,选择 Azure Active Directory。
  4. 点击“应用注册”,然后从顶部栏中选择“新应用程序注册”。
  5. 输入您的应用程序的名称,例如。 “Adal native 应用程序示例”,选择 native 作为应用程序类型,并输入 http://adalsample 作为重定向 URI。最后点击屏幕底部的“创建”。
  6. 保存新申请注册中的申请 ID。您稍后将在此示例中需要它。
  7. 授予 Azure DevOps 权限。单击所需权限 -> 添加 -> 1 选择 API -> 输入并选择 Azure DevOps (Microsoft Visual Studio Team Services) -> 选中委派权限框 -> 单击选择 -> 单击完成 -> 单击授予权限 ->单击"is"。

您还需要根据 documentation 从此端点获取 token :

https://app.vssps.visualstudio.com/oauth2/authorize
?client_id={app ID}
&response_type=Assertion
&state={state}
&scope={scope}
&redirect_uri={callback URL}

关于Azure DevOps API OAuth 授权获得 "Object Moved"响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63383255/

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