Angular 获取Azure DevOps API消费的OAuth令牌

Angular 获取Azure DevOps API消费的OAuth令牌,angular,azure,azure-devops,azure-active-directory,angular7,Angular,Azure,Azure Devops,Azure Active Directory,Angular7,我有一个用Angular 7编写的web应用程序。我正在尝试使用Azure DevOps API,我知道我必须安装Azure Active Directory应用程序。我尝试过一些库,比如adal-angularmsal-angular,以及像microsoft-adal-angular6这样的包装器。跟踪他们的文档和样本。我可以成功访问用户名、电子邮件和令牌。我可以将令牌用于Microsoft Graph API,但不能用于Azure DevOps API。我尝试使用此令牌作为我的HttpCl

我有一个用Angular 7编写的web应用程序。我正在尝试使用Azure DevOps API,我知道我必须安装Azure Active Directory应用程序。我尝试过一些库,比如
adal-angular
msal-angular
,以及像
microsoft-adal-angular6
这样的包装器。跟踪他们的文档和样本。我可以成功访问用户名、电子邮件和令牌。我可以将令牌用于Microsoft Graph API,但不能用于Azure DevOps API。我尝试使用此令牌作为我的
HttpClient
的身份验证
承载者,但是我得到了状态码203

然后我找到了这个,我想这是我需要的缺失部分,但它是用于dotNet的

API Im共享:
https://app.vssps.visualstudio.com/_apis/accounts

Q:

  • 我得到的代币是什么
  • 如何使用Angular 7获得适当的令牌
  • 我需要什么图书馆

  • 我使用了
    @azure/msal angular
    。我使用acquireTokenSilent(['499b84ac-1321-427f-aa17-267ca6975798/.default'])
    获得azure开发运营令牌。如果失败,我将使用acquireTokenRedirect(['499b84ac-1321-427f-aa17-267ca6975798/.default'])


    访问令牌可以通过
    getCachedTokenInternal([499b84ac-1321-427f-aa17-267ca6975798/.default])检索

    在您链接的答案中,Philippe提到资源id是
    “499b84ac-1321-427f-aa17-267ca6975798”
    。如果您使用MSAL,那么您可以请求一个范围为:
    “499b84ac-1321-427f-aa17-267ca6975798/.default”
    @juunas yep的令牌,我也尝试过,但我仍然得到203。用户不同意。我检查了我的AAD应用程序,我已经添加了
    Visual Studio Team Services
    user\u imposition
    范围。@juunas我现在可以使用了!我用MSAL。我尝试在
    acquireToken
    方法中插入
    “499b84ac-1321-427f-aa17-267ca6975798/.default”
    。谢谢