我应该在Spring REST应用程序中使用什么类型的安全性

时间:2017-03-22 22:31:05

标签: java spring spring-security jwt spring-oauth2

我有一个Spring REST应用程序,我正在考虑使用什么类型的安全性。我正在考虑两种选择:

  1. 使用OAuth2进行Spring Security
  2. 使用JWT的Spring Security https://www.toptal.com/java/rest-security-with-jwt-spring-security-and-java
  3. 还有其他选择吗?
  4. 现在一定要好又安全。 应用程序将是一项简单的服务或很少的小型服务。 作为一个数据库我正在使用MongoDB(可能没关系)。

    也许某人有各种类型的优缺点或任何其他建议使用什么。

1 个答案:

答案 0 :(得分:1)

首先,你的两个点是相同的,而#2点是不正确的,因为 JWT 只是一种令牌格式,而不是实际的安全机制,所以两者都无法比较。

OAuth2 服务器是以JWT或非JWT格式为您生成令牌的服务器,您可以选择。

我不确定那里的所有技术,但如果你流行,OAuth2作为授权服务器和JWT作为令牌格式非常受欢迎。

应用程序/ API安全意味着很多东西,身份验证和授权可以防止大量攻击。显然,并非所有事情都是开发人员关注的问题,而且大多数都是基础架构或安全团队。

流量

  1. 设置身份验证机制
  2. 设置连接到同一用户的授权机制(OAuth2) 来源作为认证机制。从这里,您将获得JWT或非JWT格式的令牌。获取JWT格式的令牌具有您可以阅读的优点
  3. 现在,您在API项目(通常是Filters)中设置了一种机制来解析和验证JWT令牌。没有有效令牌的请求将被拒绝。这将强制您的客户端首先验证自己并检索有效令牌以使用您的API。
  4. 您可以使用Spring Security(如XSS攻击,跨域等)在您的API中设置更多安全性