【问题标题】:Controlling access to a communication layer控制对通信层的访问
【发布时间】:2014-11-28 11:52:13
【问题描述】:

我有许多应用程序(.Net 和 Java),它们使用通信层相互通信。 我现在需要扩展通信层以允许第 3 方应用程序访问它 - 如下所示。 但是,虽然我想确保我的应用程序仍然可以访问通信层中的所有可用方法,但我想限制对第 3 方应用程序的访问。

因此,从本质上讲,我需要为我的应用程序找到一种方法来证明它们确实是我的。自然地,我可以在每条消息中使用公钥/私钥加密或唯一的哈希,但这会将我的应用程序之间的通信速度减慢到一个非常不可接受的限制。有没有人有其他想法?

【问题讨论】:

  • 对公共和私有访问使用不同的端点
  • @RAJ - 我已经设置了不同的端点,但是如何阻止恶意的第 3 方应用程序进入错误的端点?
  • 抱歉,您可以拥有的一件事是服务路由器,外部第三方只能访问路由服务。此路由器服务将负责必要的安全性。
  • 大部分开销应该是建立链接。之后加密应该是最少的。
  • 为什么不将它命名为“通信 api”并使用“appKey/appSecret”方案,通常用于这么多公共 API?

标签: java c# security architecture


【解决方案1】:

创建一个网络服务以进行通信,并使用该服务让您的所有应用相互通信。 还要继续在服务接收的每条消息中使用公钥/私钥加密或唯一哈希。

【讨论】:

    【解决方案2】:

    您几乎完美地描述了Enterprise application integration 的概念。您可以将这两种模式一起用于

    我想确保我的应用程序仍然可以访问通信层中的所有可用方法我想限制对第 3 方应用程序的访问。

    这里是第一个 - Mediation pattern 可以帮助您作为您自己的应用程序之间的代理。每当一个应用程序中发生有趣的事件时,都会通知 EAI 系统中的集成模块。然后该模块将更改传播到其他相关应用程序。

    在部分

    需要扩展通信层以允许第 3 方应用程序访问它

    Federation pattern 将确保从“外部世界”到任何应用程序的所有调用都由 EAI 系统进行前端处理。因为它充当跨多个应用程序的总体外观。 EAI系统被配置为只向外界公开底层应用程序的相关信息和接口,并代表请求者执行与底层应用程序的所有交互。

    对于

    通信层

    您可以查看通信架构部分,那里也有提及。在我当前的项目中,我们使用Tibco

    【讨论】:

      猜你喜欢
      • 2012-03-09
      • 2012-12-13
      • 1970-01-01
      • 2015-01-15
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 2010-12-06
      • 2018-07-09
      相关资源
      最近更新 更多