使用Azure Active Directory提供的Oauth的Team Foundation Server API

时间:2016-10-13 02:53:06

标签: azure tfs oauth azure-active-directory tfs-sdk

我正在尝试编写一个将获得Oauth令牌并通过API与TFS通信的应用程序 我已经注册了一个应用程序(https://app.vsaex.visualstudio.com)并且可以获得一个带有我需要的范围的Oauth令牌。

此问题得到了微软某人的回复,询问“其中一个帐户是否偶然受Azure Active Directory支持?”

https://social.msdn.microsoft.com/Forums/vstudio/en-US/9061abf8-7ee9-452f-99f1-2a84f8c16d85/vso-api-oauth2-and-multiple-vso-accounts?forum=TFService

这也是我遇到的确切行为。我可以获得一个令牌并与我的个人TFS实例交谈,但是当我尝试与AD支持的TFS进行通信时,我得到了一个401.

我确实尝试使用AD Oauth,但它没有VSO的范围。 (https://azure.microsoft.com/en-us/documentation/articles/active-directory-protocols-oauth-code/

有没有人知道如何使用Azure AD中的Oauth对TFS服务器进行API调用?

1 个答案:

答案 0 :(得分:1)

即使使用相同的用户帐户(电子邮件地址),Microsoft帐户(MSA)和Azure AD(AAD)帐户在系统中也具有单独的标识。所以它们的访问令牌应该是不同的。

以我的帐户为例: enter image description here 我有MSA(Microsoft帐户)的个人VSTS帐户和(devtoolssupport)的AAD帐户。当我登录" devtoolssupport"并执行OAuth身份验证,授权的应用程序仅列在" devtoolssupport"中,它不适用于" Microsoft帐户"。因此,使用" Microsoft帐户"验证应用程序,您需要选择" Microsoft帐户"在此页面上,然后再次执行OAuth身份验证。