1

我打算开发一个具有Web API作为后端的单页面应用程序,它将代表用户调用其他一些Web API。但我正在努力如何做到这一点。Azure AD:将SPA与委派的用户身份场景混合使用

我从MS看过这个list of Azure AD scenarios,但没有一个看起来适合我的情况。我想我的场景是SPA和从该链接的“Web应用程序到Web API”场景的混合体。

根据我的理解,我必须先完成SPA客户端首先从Azure AD Auth端点检索授权码和ID令牌,然后将它们发送到我的后端。然后,后端将向Azure AD令牌端点请求所需的访问令牌。

这是正确的吗?但我怎么能做到这一点(与adal.js)?我只找到使用隐式流程的客户端的示例,其中获取授权代码被跳过,并直接以访问令牌结束。这可能吗?

回答

1

你的理解非常接近。在Azure Portal中配置场景后(请参阅code sample以获取有关配置场景的帮助),您将登录用户并向Web API请求访问令牌。然后,当Web API收到此访问令牌时,它可以向Azure AD执行On-Behalf-Of request请求访问下游Web API。成功之后,Azure AD将向Web API发布一个新的访问令牌,可用于下游API。

就支持而言,单页面应用程序需要使用ADAL.js来登录用户并获取访问令牌。在Web API方面,Azure AD通过ADAL .NET和ADAL Java支持On-Behalf-Of flow。一个细微差别是你可能想要保护你的web API上的端点和验证令牌,Azure AD已经为.NET构建了OWIN中间件,但是需要一个与Java web API相同的开源代码。

Here是一个在行动流程中的典型示例。它有一个单页面应用程序和一个调用.NET Web API的本地应用程序。

+0

我认为这正是我需要的。非常感谢Daniel! – Jer

相关问题