【问题标题】:Communication between Spring microservicesSpring微服务之间的通信
【发布时间】:2018-01-22 06:05:09
【问题描述】:

我仍在学习微服务,我在问自己,我们如何保护我们的休息点?我使用从 Spring 扩展而来的著名框架 Spring Boot。保护 REST API 端点的最佳或最常用的模式是什么?

当我将 Spring Security 与 oAuth2 一起使用时,我总是需要在请求正文中发送凭据。有没有没有凭证且更容易实施的方法?喜欢 API-Tokens?

我总是喜欢实用教程。

【问题讨论】:

  • 看看 SSL,那里有一些免费的 SSL 提供程序,它会在两个端点之间创建加密连接,使正文几乎无法阅读。
  • oAuth2 支持令牌认证。检查 spring-security/spring boot 中的 JWT 令牌支持
  • 嗯,好的,我会看看这两个建议。也许我稍后会回来:)谢谢伙计们。
  • 您需要了解 Zuul 以及 spring-cloud-security 和 Java Cryptography Extension

标签: java spring api spring-mvc microservices


【解决方案1】:

我可以建议研究一下 Spring Security 及其提供的各种选项。 但是,如果您从微服务的角度来看,那么您就在使用访问令牌的正确道路上,并且建议 JWT 会做得很好。 不,要获得 JWT,您可以使用 Pac4j 或类似的工具选择另一个小型身份验证服务。

最初我更喜欢使用keycloak 它是一个开源 IAM 您可以找到几个关于如何开始使用 Keycloak 和 Spring boot 的示例 但这是我前段时间写的one

-- 只是补充一点,对于微服务来说,使用 AccessTokens 是有意义的,因为您不需要保留用户凭据并将其传递给每个服务,而且服务可以自己验证令牌,而无需对您的身份验证服务进行昂贵的网络调用。

【讨论】:

    【解决方案2】:

    我可以建议查看此示例(使用“服务器”范围):https://github.com/sqshq/PiggyMetrics 以及更高级的配置:http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_security

    【讨论】:

      猜你喜欢
      • 2018-03-17
      • 2016-06-10
      • 2016-03-05
      • 1970-01-01
      • 1970-01-01
      • 2021-06-20
      • 2016-08-10
      • 2019-01-18
      • 2019-09-11
      相关资源
      最近更新 更多