0

如何强制实现 url 仅在 Mulesoft 中从代理侦听?

现在可以使用 client_id、client_secret 等来保护代理。但是实现 url 并不安全。碰巧,如果有人知道实施网址,那么它潜在的风险事件。

有什么方法可以强制实现 url 只听代理。

(或)我们可以将策略添加到实施 url。

4

2 回答 2

1

Mulesoft 文档 setup -an-api-proxy指出,代理应用程序只不过是一个 mule 应用程序,它模拟实际服务实现的合同行为并对实际 API 进行服务调用以完成请求。因此,建议使用HTTPS代替 HTTP,以增强安全性和数据完整性。由于 Mulesoft 建议在 mule 代理和服务实现之间使用 HTTPS 协议进行连接,因此利用 HTTPS 协议,一种选择是尝试在您的代理和实现之间强制执行两种方式的 SSL,这将帮助您仅接受来自合法客户端的请求。

查看主题enable-two-way-ssl-in-mule了解更多实现细节

第二个选项是在实际服务实现上启用策略,即在您的服务上启用api-auto-discovery。尽管您可以做到,但由于以下原因,这将是一笔开销:

  1. 由于您将在两层执行策略并将对 API 管理器的调用加倍以同步策略,因为服务实现将每隔固定时间间隔轮询 API 管理器以检查/获取策略。
  2. 要在服务实现上启用策略应用程序,服务需要在任一api-gateway runtime或更高的运行时上mule 3.8 运行,因为较旧的 mule 版本不支持策略。

可以通过在 API xml 中包含以下 XML 片段来完成实现。

<api-platform-gw:api apiName="app-${env}" version="${api.version}" flowRef="api-main" create="true" apikitRef="api-config" doc:name="API Autodiscovery" />
  • apiName 将是在 API Manager 中创建的 API 定义,您可以从中查看和管理 API
  • 版本将与 API 的主要版本相同
  • flowRef 会将其映射到主要流参考
  • create 标志以表示是否需要在 API Manager 中创建定义以防它不存在

结论:

  1. 实施 2 路 SSL 以实施基于客户端-服务器证书的身份验证
  2. 将自动发现添加到服务实现,以便在实现层也应用策略
于 2018-09-11T20:42:13.980 回答
0

Mulesoft 文档建议添加 VPC 。当我们测试 http 在 VPC 中工作但不是 https 时。

由于 https 是一项强制性要求,而我们无法通过 VPC 做到这一点,因此我们以不同的方式对其进行了修复。

我们在代理代码中添加了一个自定义标头,并在实现中验证该标头。

这是推出的修复程序

于 2018-10-25T21:44:40.470 回答