【问题标题】:What type of security should I use in Spring REST application我应该在 Spring REST 应用程序中使用什么类型的安全性
【发布时间】:2017-08-15 06:55:40
【问题描述】:

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

  1. 使用 OAuth2 的 Spring Security
  2. 使用 JWT 的 Spring Security 就像这里 https://www.toptal.com/java/rest-security-with-jwt-spring-security-and-java
  3. 还有其他选择吗?

现在它必须足够好和安全。 应用程序将是一个简单的服务或几个小服务。 作为数据库,我使用的是 MongoDB(可能没关系)。

也许有人对每种类型都有一些优点和缺点,或者对使用什么有任何其他建议。

【问题讨论】:

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


【解决方案1】:

首先,您的两点是相同的,并且第 2 点不正确,因为 JWT 只是一种令牌格式,而不是实际的安全机制,因此两者无法比较。

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

我不确定所有的技术,但如果你按照流行度来看,作为授权服务器的 OAuth2 和作为令牌格式的 JWT 非常流行。

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

流程

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

【讨论】:

    猜你喜欢
    • 2011-04-12
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多