哪种OAuth策略可用于验证拥有的SPA,以及哪种第三方可使用的策略?

时间:2019-01-18 21:24:24

标签: oauth-2.0 microservices single-page-application

情况:System-K具有许多微服务。其中之一是OAuth微服务,它为第三方提供访问令牌,这些令牌将消耗一些由System-K其他微服务管理的数据。 System-K还具有一个SPA Web应用程序的前端。该SPA也使用与第三方相同的数据,但是区别在于该SPA将能够查询特权数据,因为它是拥有的Sysmte-k前端。

问题:SPA使用哪种OAuth策略?还是我应该使用另一种方法来处理SPA发出的身份验证请求,然后将OAuth服务器仅留给第三方使用?

内幕: 该Web应用程序是使用Angular 7+构建的,它将请求发送到作为微服务的Sysmte-k一部分的APIGateway,然后APIGateway将此类请求路由到目标微服务。 第三方OAuth请求也发送到APIGateway,后者路由到OAuth微服务。所有微服务都在Node中构建,并使用TypeScript编写。

更新1 我不希望在SPA中进行身份验证的用户看到显示“您是否允许System-K访问Sysmte-k配置文件?”的屏幕。因为SPA是System-k客户端本身。

1 个答案:

答案 0 :(得分:2)

  

问题:-SPA使用哪种OAuth策略?否则我应该使用   另一种处理SPA发出的身份验证请求的方法   将OAuth服务器留给第三方使用?

除非您的SPA具有后端服务器(这意味着您的SPA并不是真正的SPA),否则您只能使用implicit OAuth。隐式OAuth在浏览器的JavaScript中运行。

对于隐式OAuth,我强烈建议您使用第三方身份提供商(Google,Auth0,Okta)。用自己的代码正确设置安全性非常困难。

如果您可以添加后端服务以提供三足式OAuth,则安全性将得到改善,并且您将有更多选择。我再次推荐第三方身份提供商。