情况: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客户端本身。
答案 0 :(得分:2)
问题:-SPA使用哪种OAuth策略?否则我应该使用 另一种处理SPA发出的身份验证请求的方法 将OAuth服务器留给第三方使用?
除非您的SPA具有后端服务器(这意味着您的SPA并不是真正的SPA),否则您只能使用implicit
OAuth。隐式OAuth在浏览器的JavaScript中运行。
对于隐式OAuth,我强烈建议您使用第三方身份提供商(Google,Auth0,Okta)。用自己的代码正确设置安全性非常困难。
如果您可以添加后端服务以提供三足式OAuth,则安全性将得到改善,并且您将有更多选择。我再次推荐第三方身份提供商。