在没有用户登录屏幕的情况下从Javascript调用安全的REST API

问题描述 投票:1回答:1

你如何从没有登录的Javascript脚本应用程序中调用安全的REST api?

我有一个没有用户登录的Javascript应用程序(React)。它需要调用一些使用Oauth的REST api服务(Azure Ad - WindowsAzureActiveDirectoryBearerAuthentication)。

这些REST服务启用了CORS。

我还在Azure广告中注册了我的Web应用程序。

问题是javascript应用程序需要调用https://login.microsoftonline.com/ {{tenantId}} / oauth2 / token来获取访问令牌。我发现无法为该URL启用CORS。我的JS应用程序没有任何登录,因此我无法在弹出窗口中显示登录屏幕或使用adal js。

我提出的解决方案是我将我的Javascript应用程序放在NodeJS(Express)中。 JS调用调用login.microsoftonline.com的NodeJS来获取令牌,并在调用其他安全的REST服务时传递它。

它工作得很好,但我认为可能存在一些安全问题。

有没有更好的方法来设计这种应用程序?

javascript reactjs oauth azure-active-directory
1个回答
0
投票

你正在做的是正确的方法。它使所有Oauth令牌在您的服务器上保持安全,而无需向客户端公开。

这是大多数Oauth2 API没有实现CORS的主要原因

© www.soinside.com 2019 - 2024. All rights reserved.