Reactjs 如何使用Azure Easy Auth获得访问令牌?

Reactjs 如何使用Azure Easy Auth获得访问令牌?,reactjs,azure,azure-web-app-service,azure-active-directory,Reactjs,Azure,Azure Web App Service,Azure Active Directory,我有一个使用React和Web API构建的单页应用程序(SPA),这两个应用程序都托管在Azure的应用程序服务上。身份验证由Azure AD提供 我一直在使用用于JavaScript的Active Directory身份验证库(ADAL)。虽然所有的示例似乎都是关于角度的,但我已经成功地获得了与React应用程序一起工作的库的纯JavaScript版本。我使用OAuth2隐式授权流通过SPA提供对Web API的身份验证访问 ADAL的一切都很好,但这种方法要求您具有登录和注销机制(例如,通

我有一个使用React和Web API构建的单页应用程序(SPA),这两个应用程序都托管在Azure的应用程序服务上。身份验证由Azure AD提供

我一直在使用用于JavaScript的Active Directory身份验证库(ADAL)。虽然所有的示例似乎都是关于角度的,但我已经成功地获得了与React应用程序一起工作的库的纯JavaScript版本。我使用OAuth2隐式授权流通过SPA提供对Web API的身份验证访问

ADAL的一切都很好,但这种方法要求您具有登录和注销机制(例如,通过按钮)。授权代码作为一个片段添加到URL中,ADAL可以方便地完成其余部分。但是,我希望整个应用程序都是安全的/经过身份验证的,因此我设置了“Easy Auth”——通过应用程序服务进行身份验证

使用“Easy Auth”时,您登录到应用程序,但URL中没有返回片段,因此不能使用ADAL获取API的访问令牌

当使用“Easy Auth”时,获得访问令牌(如隐式授权所需的令牌)的最佳方法是什么?有没有办法将ADAL合并到“Easy Auth”流中


谢谢。

如果您将单页应用程序和web API部署到同一Azure的应用程序服务中,并使用Easy Auth保护应用程序服务,则现在无需在单页应用程序中使用adal来调用web API

在这种情况下,您可以通过服务器流登录应用程序服务,然后您可以直接调用web API,因为Easy Auth将通过cookie验证请求。如果web API还使用令牌为您要调用的其他客户端提供服务器,则您需要使用Azure AD应用程序获取id_令牌/access_令牌,以保护应用程序服务,并使用Azure AD发布的id_令牌/access_令牌交换身份验证令牌。此过程称为客户端流


有关这两个流的更多详细信息,请参考链接。

使用此方法,您如何能够在开发人员计算机上运行系统?如何使用Easy Auth获得用户对象?