问题在于,由于我们必须在微服务之间使用内部授权,所以请求太多。
关于 Krakend 的资料很少,也没有关于 Krakend 使用体验的文章。阅读文档也不起作用。
如果我正确理解了您的问题,那么您正在尝试保护一些仅从您的微服务中使用的“内部”路由,使其免受外部使用。以下是使用 KrakenD 的方法:
使用单独的网关:最简单的方法是为外部和内部请求使用单独的网关。外部路由可以向外部开放,而内部路由则位于防火墙后面或专用网络中,只能从您的微服务访问。
向内部资源添加一些验证:如果您希望对外部和内部请求使用单个网关,则可以向内部路由/端点添加保护。这可以通过使用通用表达式语言 (CEL)、安全策略或 LUA 脚本实现的身份验证或标头验证来实现。
CEL:KrakenD 支持 CEL 为端点定义复杂的匹配规则。您可以在这里找到更多相关信息:https://www.krakend.io/docs/endpoints/common-expression-language-cel/
安全策略:KrakenD 的安全策略引擎允许您编写自定义规则,这些规则在请求、响应和令牌验证期间在运行时进行验证。这可用于实现各种验证和用户访问控制策略,从参数合规性到基于角色的访问控制 (RBAC) 和基于属性的访问控制 (ABAC) 策略。您可以在这里找到更多相关信息:https://www.krakend.io/docs/enterprise/security-policies/
LUA:KrakenD 还支持端点逻辑的 LUA 脚本。您可以在这里找到更多相关信息:https://www.krakend.io/docs/endpoints/lua/
过滤源IP:保护对某些内部使用的路由的访问的另一种方法是使用IP过滤器组件。这允许您定义哪些 IP 可以访问某些端点。您可以在这里找到更多相关信息:https://www.krakend.io/docs/enterprise/throtdling/ipfilter/
我希望这有帮助!