如何验证微服务的请求源

时间:2019-06-21 07:43:51

标签: java reactjs spring-boot react-native microservices

我有一个基于Spring的微服务,它向基于react.js的Web客户端应用程序和使用react-native构建的移动应用程序提供数据。 这些应用程序托管在云上。

我想允许来自这2个客户端应用程序的REST调用,并阻止任何其他请求源来保护我的应用程序。 我当时想使用随每个请求传递的APP ID,但这不会保护服务,因为拥有APP ID的任何人都可以侵入我的REST服务。 有人可以建议解决此问题的最佳方法。

1 个答案:

答案 0 :(得分:2)

有几种保护端点的方法,但最常用的是基于JWT令牌的授权

  • 创建端点,例如/ auth / api。
  • 在应用程序登录过程中,从身份验证端点获取基于JWT的令牌,例如auth / signIn。
  • 从身份验证结果中提取令牌。
  • 将HTTP标头授权值设置为Bearer jwt_token。
  • 然后发送访问受保护资源的请求。
  • 如果所请求的资源受到保护,Spring Security将使用我们的自定义过滤器来验证JWT令牌,并构建一个Authentication对象,并在特定于Spring Security的SecurityContextHolder中对其进行设置,以完成身份验证进度。
  • 如果JWT令牌有效,它将把请求的资源返回给客户端。

请仔细阅读Spring JWT中间件教程

其他方法是 Oauth2 ,您需要创建Oauth2服务器,该服务器充当授权服务器,在该服务器中,客户端与clientID和客户端Secret关联,并且您使用访问令牌批准访问。