mule - Mulesoft :- 强制实现 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 管理器的调用加倍以同步策略,因为服务实现将每隔固定时间间隔轮询 API 管理器以检查/获取策略。
- 要在服务实现上启用策略应用程序,服务需要在任一
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 中创建定义以防它不存在
结论:
- 实施 2 路 SSL 以实施基于客户端-服务器证书的身份验证
- 将自动发现添加到服务实现,以便在实现层也应用策略
推荐阅读
- reactjs - jhipster 在 Internet Explorer11 上反应应用程序错误
- c++ - 具有两个(不同)变量比较运算符的增强 if 语句
- reactjs - React js - 问题实现路由器
- linux - Azure DevOps:“托管 Linux 预览版”和“托管 Ubuntu 1604”代理池有什么区别?
- python - Tensorflow:自定义操作需要定义哪些梯度?
- android - 我遇到此错误:链接文件资源失败
- powerbi - 无法在 Power BI 中获得前 1 名?
- javascript - 无法在 javascript 中验证多文件上传的文件大小
- html - CSS : 按钮中心停止悬停功能
- http - 我是否应该将 graphQL 用于不涉及应用程序数据的请求,例如从第三方服务注销的请求?