我是 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 构建类似的东西吗?
非常感谢。