【问题标题】:jhipster 2 : What is the difference between the authentication option?jhipster 2:身份验证选项有什么区别?
【发布时间】:2015-04-08 19:42:56
【问题描述】:

我已将 jhipster 生成器从版本 1 更新到版本 2。在以前的版本中,我们在生成新项目时必须选择身份验证。我们可以在 Cookie 身份验证和 Token 身份验证(使用 OAuth)之间进行选择。这对我来说非常清楚。但在 2.1.1 版本中,我们现在有三个选择:

1 > HTTP Session Authentication (stateful, default Spring Security mechanism)
2 > OAuth2 Authentication (stateless, with an OAuth2 server implementation)
3 > Token-based authentication (stateless, with a token)

我想对网络和移动应用程序(离子框架)使用身份验证,2 和 3 之间是哪一对?这个选择是否使我的应用程序使用集群可扩展? 谢谢

【问题讨论】:

标签: spring authentication oauth ionic-framework jhipster


【解决方案1】:

您将在此处了解有关 jhipster 身份验证类型的基本信息

http://jhipster.github.io/security/

根据我在使用 jhipster 的 REST api 的 ionic-framework 方面的个人经验,我可以说不要对移动应用程序(离子框架)使用 HTTP 会话身份验证,因为移动应用程序无法播放以及 HTTP 会话身份验证所依赖的一般 cookie。

Oauth2 和 JWT 都适用于 ionic 混合应用

HTTP 会话身份验证

这是“经典”的 Spring Security 身份验证机制,但我们对其进行了相当显着的改进。它使用 HTTP Session,因此它是一种有状态的机制:如果您计划在多台服务器上扩展您的应用程序,您需要有一个带有粘性会话的负载均衡器,以便每个用户都停留在同一台服务器上。

OAuth2 身份验证

OAuth2 是一种无状态安全机制,因此如果您想在多台机器上扩展您的应用程序,您可能更喜欢它。 Spring Security 提供了一个 OAuth2 实现,我们已经为您配置好了。

OAuth2 的最大问题是需要有多个数据库表才能存储其安全令牌。如果您使用的是 SQL 数据库,我们会提供必要的 Liquibase changlog,以便自动为您创建这些表。

由于 Spring Security 仅支持 SQL 数据库的 OAuth2,我们还实现了自己的 MongoDB 版本。我们为您生成 MongoDB 的所有 OAuth2 实现,以及必要的 MongoDB 配置。

此解决方案使用一个密钥,该密钥应在您的 application.yml 文件中配置为“authentication.oauth.secret”属性。

JWT 身份验证

JSON Web Token (JWT) 身份验证与 OAuth2 类似,是一种无状态安全机制,因此如果您想在多个不同的服务器上进行扩展,它是另一个不错的选择。

默认情况下 Spring Security 不存在这种身份验证机制,它是 Java JWT 项目的特定于 JHipster 的集成。它比 OAuth2 更易于使用和实现,因为它不需要持久性机制,因此它适用于所有 SQL 和 NoSQL 选项。

此解决方案使用保存用户登录名和权限的安全令牌。由于令牌已签名,因此用户无法更改。

密钥应该在 application.yml 文件中配置为 jhipster.security.authentication.jwt.secret 属性。

【讨论】:

  • 您或其他人能否将其解释为实际的 JHipster 架构?我的意思是,我看到生成器为网关、JHipsterRegistry 和用于身份验证的微服务构建了相同的代码(TokenProvider 就是一个例子),所以不是很简单,巫婆端点应该具有身份验证机制以及它们将如何交换身份验证信息
  • 关于 oauth2 身份验证,该协议确实是无状态的,但正如我所见,Jhipster 在客户端和服务器之间以有状态的方式实现它(参见文档,以及 UserService::clearUserCaches 方法)
猜你喜欢
  • 2016-04-22
  • 2011-04-13
  • 2020-07-16
  • 2014-10-12
  • 2013-04-19
  • 1970-01-01
  • 2012-03-21
  • 1970-01-01
  • 2015-01-20
相关资源
最近更新 更多