1

我是 gRPC 的初学者,作为我的第一个挑战,我正在构建一个由一些 gRPC 微服务(根据 API-Gateway 模式)组成的 Node JS 平台。我想限制来自外部来源的所有访问 - 只有网关本身才能访问我的内部结构。

经过一段时间的搜索,我发现了 3 种限制访问的方法:

  • 1 - HTTP 认证;
  • 2 - 令牌认证;
  • 3 - TSL/SSL 认证;

我的网关已经有了一个认证机制——JWT 中间件。我不想为每个微服务都复制它并产生大量的代码冗余。我想找到一些方法来过滤每个内部微服务中的 IP 请求,并允许或禁止其访问。简而言之,我要确保只有网关 IP 才能访问所有内部微服务。

在这里,组件图显示了我的初始架构: 在此处输入图像描述

我们可以在 Express API 中轻松完成:

// Express example
app.use(function (req, res, next) {
  if (req.ip !== '1.2.3.4') { // Wrong IP address
    res.status(401);
    return res.send('Permission denied');
  }
  next(); // correct IP address, continue middleware chain
});

有什么方法可以使用 gRPC 构建类似的东西吗?

非常感谢。

4

0 回答 0