如何强制实现 url 仅在 Mulesoft 中从代理侦听?
现在可以使用 client_id、client_secret 等来保护代理。但是实现 url 并不安全。碰巧,如果有人知道实施网址,那么它潜在的风险事件。
有什么方法可以强制实现 url 只听代理。
(或)我们可以将策略添加到实施 url。
如何强制实现 url 仅在 Mulesoft 中从代理侦听?
现在可以使用 client_id、client_secret 等来保护代理。但是实现 url 并不安全。碰巧,如果有人知道实施网址,那么它潜在的风险事件。
有什么方法可以强制实现 url 只听代理。
(或)我们可以将策略添加到实施 url。
Mulesoft 文档 setup -an-api-proxy指出,代理应用程序只不过是一个 mule 应用程序,它模拟实际服务实现的合同行为并对实际 API 进行服务调用以完成请求。因此,建议使用HTTPS代替 HTTP,以增强安全性和数据完整性。由于 Mulesoft 建议在 mule 代理和服务实现之间使用 HTTPS 协议进行连接,因此利用 HTTPS 协议,一种选择是尝试在您的代理和实现之间强制执行两种方式的 SSL,这将帮助您仅接受来自合法客户端的请求。
查看主题enable-two-way-ssl-in-mule了解更多实现细节
第二个选项是在实际服务实现上启用策略,即在您的服务上启用api-auto-discovery。尽管您可以做到,但由于以下原因,这将是一笔开销:
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" />
结论:
- 实施 2 路 SSL 以实施基于客户端-服务器证书的身份验证
- 将自动发现添加到服务实现,以便在实现层也应用策略
Mulesoft 文档建议添加 VPC 。当我们测试 http 在 VPC 中工作但不是 https 时。
由于 https 是一项强制性要求,而我们无法通过 VPC 做到这一点,因此我们以不同的方式对其进行了修复。
我们在代理代码中添加了一个自定义标头,并在实现中验证该标头。
这是推出的修复程序