如何保护Angular6-Spring启动微服务应用
How to secure Angular 6 - Spring boot micro service application
我想讨论一下我重新编写现有应用程序的尝试,并想知道使应用程序更安全的建议。
我们有一个银行应用程序,它不是面向客户的应用程序,它供银行员工管理网上银行用户和系统。它称为管理门户。
目前它是用 java jetspeed 框架编写的。我想用 Angular 6 和 spring 引导微服务架构重新编写它。
我熟悉 spring 启动和 spring 其余部分,但不确定安全部分。由于它是一款银行应用程序,我们必须更加重视安全部分。
我们正在使用 MySQl 作为数据库。
谁能分享在这种情况下 JWT 和 OAuth 2 之间最好的安全方法是什么?如何使用 spring 安全性来实施?
我开发了两个家庭银行应用程序并为 authentication/authorization 部分提出了两个选择:JWT
和 OAuth2
我选择了第一个
JWT
更易于管理,也更安全,不需要 Authorization Server
会影响应用程序的可扩展性(您还必须扩展此服务)
JWT
有两种方法,我选择了第二种:
您可以编写身份验证微服务来生成和解码令牌(作为 OAuth 服务,您可能会遇到可扩展性问题)
您可以编写一个逻辑来在您的 Gateway(s)
应用程序中生成 JWT
令牌,而所有其他应用程序 Microservices
必须具有解码令牌的安全部分。
使用第二种方法,每个微服务都知道该令牌是否具有角色(因为角色是在令牌本身中编码的)并且授权非常细粒度。另一种方法是将授权放在 Gateway
层,但我认为它会变得非常复杂。
在 angular-side 上,您只需使用令牌作为响应实施登录。在 Authorization
header.
中的每个请求中设置令牌
和站点导航你可以实现一个定义令牌的调用,服务器将检索用户 ROLES
并仅在用户(令牌)具有 ROLES
时路由到特定页面
此外,如果我以某种方式破解 JS(使用 minify/obfuscation 可能会非常困难),我将能够在未经授权的页面中路由前端应用程序,但服务器端调用将失败并且 lamer
将看到一个空白页。
此外,在家庭银行应用程序中,您可以使用跨设备操作或使用 OTP 身份验证进行操作规定
我想讨论一下我重新编写现有应用程序的尝试,并想知道使应用程序更安全的建议。
我们有一个银行应用程序,它不是面向客户的应用程序,它供银行员工管理网上银行用户和系统。它称为管理门户。 目前它是用 java jetspeed 框架编写的。我想用 Angular 6 和 spring 引导微服务架构重新编写它。
我熟悉 spring 启动和 spring 其余部分,但不确定安全部分。由于它是一款银行应用程序,我们必须更加重视安全部分。 我们正在使用 MySQl 作为数据库。
谁能分享在这种情况下 JWT 和 OAuth 2 之间最好的安全方法是什么?如何使用 spring 安全性来实施?
我开发了两个家庭银行应用程序并为 authentication/authorization 部分提出了两个选择:JWT
和 OAuth2
我选择了第一个
JWT
更易于管理,也更安全,不需要 Authorization Server
会影响应用程序的可扩展性(您还必须扩展此服务)
JWT
有两种方法,我选择了第二种:
您可以编写身份验证微服务来生成和解码令牌(作为 OAuth 服务,您可能会遇到可扩展性问题)
您可以编写一个逻辑来在您的
Gateway(s)
应用程序中生成JWT
令牌,而所有其他应用程序Microservices
必须具有解码令牌的安全部分。
使用第二种方法,每个微服务都知道该令牌是否具有角色(因为角色是在令牌本身中编码的)并且授权非常细粒度。另一种方法是将授权放在 Gateway
层,但我认为它会变得非常复杂。
在 angular-side 上,您只需使用令牌作为响应实施登录。在 Authorization
header.
中的每个请求中设置令牌
和站点导航你可以实现一个定义令牌的调用,服务器将检索用户 ROLES
并仅在用户(令牌)具有 ROLES
此外,如果我以某种方式破解 JS(使用 minify/obfuscation 可能会非常困难),我将能够在未经授权的页面中路由前端应用程序,但服务器端调用将失败并且 lamer
将看到一个空白页。
此外,在家庭银行应用程序中,您可以使用跨设备操作或使用 OTP 身份验证进行操作规定