【问题标题】:Microservice architecture, authentication and other services微服务架构、鉴权等服务
【发布时间】:2015-07-15 05:38:16
【问题描述】:

我正在研究微服务架构,我有一个问题。

承认我在不同的主机上有多个服务,如下所示:

我的问题是,当用户在网关上请求时,他发送了一个访问令牌(无状态,oauth2.0,等等),然后网关询问身份验证服务,如果用户存在并且有权限,他访问其他服务上的资源。

没关系,但如果我尝试直接从他的主机调用 BillingService 怎么办?你可以告诉我端口已经关闭,我同意。

但这是否意味着它们只允许从某个主机到另一个主机?是否意味着 1234 端口上的计费服务只允许来自网关机器?

我错过了什么吗?

感谢提前

【问题讨论】:

    标签: java web-services api amqp microservices


    【解决方案1】:

    计费服务需要保护自己。在这种情况下,您不能仅依靠网络安全。计费服务保护自己的方式是检查令牌/会话是否仍处于活动状态。这不应由业务逻辑完成,而应由您使用的安全框架完成。

    例如,在之前的项目中,我们使用 CAS 来保护我们的服务。 Here 是将 CAS 过滤器添加到 Servlet 容器的说明。因此,为了保护我的服务,我只需将这些过滤器包含到我的 web.xml 和适当的 jar 文件中。这些 CAS 过滤器将拦截每个请求并验证令牌/会话是否处于活动状态以及用户是否已登录。您可能没有使用 CAS,但方法应该类似。希望您不必编写自定义代码来检查 HTTP 请求并验证它在您的计费服务中是否具有适当的活动令牌/会话。

    【讨论】:

    • 好的,但这里的问题是我必须为我的所有服务(使用 CAS 或其他服务)应用保护。所以我必须重复一些代码。这不是一个坏习惯吗?
    • 不,你不会重复代码片段。您将编写一次代码,打包并重用它。但希望您不必这样做,因为您的安全框架将包含可以轻松集成到 Web 服务容器中的代码。
    • 我必须记录更多我认为的微服务架构。感谢您的帮助
    • 请记住,微服务不是协议。不使用大量服务制作大型应用程序更像是一种设计理念。相反,您可以利用易于集成和使用的各种代码来创建较小的应用程序。它基本上意识到编写服务很容易并且不会带来很多开销(如果你知道你在做什么)。只需研究 Web 服务,当您启动它们时,微部分会及时出现。
    猜你喜欢
    • 2019-06-26
    • 2017-12-09
    • 2015-12-26
    • 2014-01-08
    • 2016-09-02
    • 2021-11-02
    • 2016-11-23
    • 2018-03-29
    相关资源
    最近更新 更多