【问题标题】:JWT authentication for jBASE RESTful APIjBASE RESTful API 的 JWT 身份验证
【发布时间】:2021-02-16 19:44:03
【问题描述】:

我们正在使用 Angular 设计一个前端应用程序,它将通过 RESTful API 调用 jBASE 服务器。 API 是从名为 jAgent 的 jBASE 组件创建的。

  1. jAgent 是否支持创建和验证 JWT?
  2. 如果不是,为 Angular 应用程序处理身份验证/授权的最佳方式是什么?
  3. 如果我们需要使用 JWT,是否必须为此使用身份验证中间件应用程序(.NET Core 或 node.js)?

【问题讨论】:

标签: rest jwt jwt-auth jbase


【解决方案1】:

好问题!目前 jAgent 中没有处理程序,我们建议通过其他应用程序(如 HAproxyKong)来实现这一点,以及高级 Web 服务器/API 网关技术。

jAgent 功能的扩展以包含此类功能我们仍在考虑,但请记住,jBASE 的强大之处在于它与主机操作系统的本机交互。由于没有虚拟操作系统层,因此可以更轻松地即插即用现成的东西来填充额外的功能,这让您可以灵活地使用自己的工具。

总结:

  1. 暂时没有
  2. 使用现成的软件包充当您的 API 网关
  3. 以您选择的套餐为准

这将 jAgent 委托给 API 层的管理,因为它存在于 PICK/jBASE 端,而现成的包管理您的 API 安全层。

给您的另一个注意事项——我注意到您包含了一个指向 HelpJuice 上托管的旧 jBASE 文档的链接。值得一提的是,我们已将这些文档迁移到 docs.zumasys.com。您会发现那里的文档更新得更及时,而且完全开源——迁移的一部分包括他们转移到GitHub repo,我们很高兴接受社区贡献。

作为参考,您提到的文章可在https://docs.zumasys.com/jbase/connectivity/jagent/introduction-to-jagent-rest-services/获取。

更新:

我们的一位工程师有一个程序将使用 openssl 为您生成令牌,您可以在 https://github.com/patrickp/wjwt 找到该程序。

您需要在机器上和路径中安装openssl

WJWT.TEST 程序显示了用法。重要的部分是SECRET.KEY,它是您用于签署有效载荷的内部KEY

当用户首次进行身份验证时,您使用SIGN 创建令牌。声明是您希望保存/存储的任何项目/字段。 不要将敏感数据放在这里,因为任何人都可以看到它。这个概念是我们用我们的密钥签署这个,把它还给客户。在未来的调用中,客户端发送令牌,我们拉取它并调用 VERIFY 函数,该函数基本上重新签名有效负载并验证签名匹配。这验证了负载没有被操纵。

您将在代码中构建诸如过期之类的活动。

从长远来看,我们计划采用这个库并将代码重构到我们的MVDB Toolkit 库中,并提供更多功能。该库是我们免费提供给 jBASE 客户的。

【讨论】:

  • 感谢迈克提供的信息。我会检查 Kong 作为一个选项。
  • 当然可以。如果您确实想在这里采用基于 PICK 的路径,我可以提供一个替代方案,但同样,目前还没有将其记录到产品中。我已经修改了上面的答案以包含此信息。
猜你喜欢
  • 2011-11-28
  • 2013-08-21
  • 2016-04-24
  • 2011-10-02
  • 2014-11-15
  • 1970-01-01
  • 2017-07-30
  • 2016-03-24
  • 2019-02-14
相关资源
最近更新 更多