如何从Azure Active Directory(AAD)Web API检索access_token

时间:2019-01-24 16:04:56

标签: javascript node.js azure vue.js azure-active-directory

我正在构建具有以下属性的Web应用程序:

  • 前端基于VueJS
  • 仍未确认后端框架,但它将是RESTFul API
  • 该应用程序的用户将通过Azure Active Directory(AAD)进行身份验证

这是我到目前为止所做的:

我已经在我的AAD中设置了一个Web App / API。遵循here准则,我已经完全保护了我的VueJS应用程序,现在需要登录到AAD才能使用该应用程序。

现在的问题是,前端是安全的。但是后端呢?我试图从AAD获取一个 access_token ,然后将其用作对我后端的每个请求的授权标头。

这是我使用 adal 库中的AuthenticationContext登录时从AAD中获得的信息。

ADAL return

如您所见,我得到一个 id_token ,当我使用 adal acquireToken 功能时,我得到一个 id_token < / strong>。

我在这里做错什么了吗?我需要在Azure上创建另一个Web App / API吗?

我该如何处理?

谢谢!

1 个答案:

答案 0 :(得分:1)

根据官方文档,这可能是您的情况。

“ Azure AD中的OAuth 2.0隐式流旨在当请求为其请求令牌的资源与客户端应用程序相同时返回ID令牌。换句话说,当JS客户端使用ADAL JS进行请求时一个自己的后端Web API的令牌,该令牌已与客户端注册了相同的App ID,该ID令牌将被库返回并缓存。请注意,在这种情况下,资源应设置为客户端的App ID(App ID URI无效)。然后,该ID令牌可用作调用应用程序的后端API的承载令牌。“

您可以在这里找到更多有关此的信息!

https://github.com/AzureAD/azure-activedirectory-library-for-js/wiki/Acquire-tokens