我已为Azure DevOps实现了OAuth2应用。我的网站要求用户(用户A)使用以下URL对应用进行授权。步骤1
https://app.vssps.visualstudio.com/oauth2/authorize?scope=vso.code_full (skipped the other parameters)
上面的URL运行良好,在用户授权后返回一个code+userInfo。现在我得到了一个访问令牌,它使用下面的API调用传递从应用程序返回的代码。
https://app.vssps.visualstudio.com/oauth2/token
我可以使用下面的API调用进一步获取与用户(用户A)帐户关联的所有组织
步骤2
https://app.vssps.visualstudio.com/_apis/accounts?api-version=6.0-preview&memberId=xyz
现在我想获取一个特定组织内部的仓库,为此我进行了下面的API调用。
步骤3
https://dev.azure.com/**organization_name**/_apis/git/repositories?api-version=5.0
avove URL工作正常,并返回到指定组织内的存储库。
"目前为止一切正常"
现在,另一个用户(用户B)正在尝试连接我的应用程序,他可以对应用程序进行授权,我的应用程序可以获取该已授权用户帐户下的组织。例如,在步骤2之前一切正常。但在步骤3失败,例如,它无法获取用户(用户B)组织内的存储库。步骤3中的API调用返回以下错误
TF 400813:用户无权访问此资源。
请帮忙。
为了进一步澄清,我怀疑问题是与认证用户(用户B),因为整个过程工作正常的一个认证用户(用户A),但另一个用户(用户B)失败。所以一定有什么不同的第二个认证用户。但我不知道是什么,因为我不是一个Azure的家伙。
另请注意,当我以用户A或用户B的身份登录时,我可以查看我的组织/项目/存储库,还可以添加/删除组织/项目/存储库。(我是组织所有者)
那么,如果我能够通过登录用户查看我的组织/存储库,并且同一用户正在验证OAuth应用程序,那么为什么该用户生成的访问令牌未被授权访问用户B帐户中的存储库?
1条答案
按热度按时间yptwkmov1#
我在这里找到了缺失的部分。
这是我必须去的组织的设置一样在下面的URL
并选中应用程序连接策略下的第一个复选框,即通过OAuth访问第三方应用程序
通过选中此选项,我也能够获取用户B帐户下的回购协议。
很遗憾,微软没有这方面的文档。这是另一个讨厌微软产品的理由。