首页 > 解决方案 > Mulesoft :- 强制实现 url 仅监听代理(或)安全实现 url

问题描述

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

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

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

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

标签: mulemule-componentmule-esbmule-cluster

解决方案


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. 将自动发现添加到服务实现,以便在实现层也应用策略

推荐阅读