Oauth Azure广告:将SPA与委托用户身份方案混合

Oauth Azure广告:将SPA与委托用户身份方案混合,oauth,single-page-application,azure-active-directory,adal.js,Oauth,Single Page Application,Azure Active Directory,Adal.js,我打算开发一个单页应用程序,该应用程序以Web API作为后端,代表用户调用一些其他Web API。但我很难做到这一点 我从微软那里看到了这一点,但没有一个适合我的情况。我认为我的场景是SPA和该链接中的“Web应用程序到Web API”场景的混合 据我所知,SPA客户端必须首先从Azure AD Auth端点检索授权代码和ID令牌,然后将它们发送到我的后端。然后后端将向Azure AD令牌端点请求所需的访问令牌 这是正确的吗?但是我如何(使用adal.js)做到这一点呢?我只找到使用隐式流的客

我打算开发一个单页应用程序,该应用程序以Web API作为后端,代表用户调用一些其他Web API。但我很难做到这一点

我从微软那里看到了这一点,但没有一个适合我的情况。我认为我的场景是SPA和该链接中的“Web应用程序到Web API”场景的混合

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


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

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

在支持方面,单页应用程序需要使用ADAL.js登录用户并获取访问令牌。在web API方面,Azure AD支持通过ADAL.NET和ADAL Java实现的。一个细微差别是您可能想要保护端点并验证web API上的令牌,Azure AD已经为.NET构建了OWIN中间件,但需要Java web API的开源等效物


是一个很好的代表流程的示例。它有一个单页应用程序和一个调用.NET web API的本机应用程序

我想这正是我需要的。谢谢你,丹尼尔!