【发布时间】:2019-02-15 20:42:59
【问题描述】:
我一直在绞尽脑汁寻找一个简单的解决方案。 可以说,我的 Node JS 应用程序中有 10 个 API 端点。
我已经允许其中 3 个是公开的,其余 4 个具有基于 JWT 的身份验证
现在我还有 3 个路由,它们没有 JWT,我只需要允许服务器端调用。没有浏览器或 curl 或邮递员,应该能够调用它们。如何从请求对象中识别它来自服务器?
或者换句话说,如何拒绝对我的 api 的所有跨源调用?由于服务器端不属于 CORS,它们应该过滤
----- 编辑-----
我最近遇到了一个使用 User Agent 标头来阻止服务器端调用的服务。 我可以为我的服务强制执行用户代理标头并确保标头没有浏览器代理。这很容易被欺骗,但作为一个理论上的解决方案,nodejs 拦截器会丢弃用户代理引用浏览器代理的请求吗?
【问题讨论】:
-
服务器是否在您的控制之下?如果是这样,请使用某种形式的身份验证来识别它们。
-
基本上,这将是一个令牌解密服务:虽然使用公钥其他微服务可以验证 JWT 签名,但其中一些可能需要对有效负载进行解密。我想将此解密服务公开给一组非常特定的服务器。我的想法是在 DMZ 环境中托管这些服务器,但由于登录/令牌生成请求,UAA 也必须具有公共端点
-
你使用的是 docker swarm 还是 kubernetes?
-
我正在寻找可扩展的解决方案。现在,它托管在我本地的私人服务器中
标签: javascript node.js express microservices