如何将API网关与微服务和JWT结合使用?
大家下午好 我只是想找个人仔细检查一下我的工作。以下是确保微服务安全的有效方法吗 前提 将我们的单片应用程序和单片合作伙伴API分解为面向特定业务功能的微服务。它们很可能是运行在docker容器中的小型expressjs应用程序,运行在elastic beanstalk上,谁知道呢。他们将住在某处:) 我正在考虑作为我的API网关站起来,或者使用AWSAPI网关封装我的微服务的细节。而且,感觉很好 for Kong将验证JWT的签名,然后将标题中的如何将API网关与微服务和JWT结合使用?,api,security,jwt,microservices,kong,Api,Security,Jwt,Microservices,Kong,大家下午好 我只是想找个人仔细检查一下我的工作。以下是确保微服务安全的有效方法吗 前提 将我们的单片应用程序和单片合作伙伴API分解为面向特定业务功能的微服务。它们很可能是运行在docker容器中的小型expressjs应用程序,运行在elastic beanstalk上,谁知道呢。他们将住在某处:) 我正在考虑作为我的API网关站起来,或者使用AWSAPI网关封装我的微服务的细节。而且,感觉很好 for Kong将验证JWT的签名,然后将标题中的客户id传递给microservice。我还应该
客户id
传递给microservice。我还应该提到,我们有第三方开发人员也将参与集成乐趣。以下是我所看到的情况的基本示意图:
实施
- 香港有一个很好的访问控制插件。我们的应用程序和移动应用程序将以“上帝”的权限运行,但我肯定可以将开发人员锁定在特定的路径和方法上
- 撤销第三方访问将很容易,撤销最终用户访问将不会这么简单,除非我愿意通过生成一个新的秘密一次使所有JWT无效。也许我可以将令牌时间限制在10分钟左右,让我们的应用程序检查它们是否过期,获取新令牌,然后继续原始请求。这样,我可以在数据库或其他地方“标记”它们,而不让JWT生成
- SSL无处不在,JWT存储在web浏览器中仅SSL的cookie中,任何声明中都没有存储敏感信息
谢谢大家。我最近致力于解决这个问题和前提,在AWS体系结构中将一个巨大的整体重构为多个服务 如何回答这个问题没有正确、错误或明确的答案。
但是,我们确实实现了一个与上述问题中描述的非常类似的解决方案。
我希望这个答案能给第一次看到这个的人一个很好的方向感 我们就是这样做的 我们需要从API网关获得什么?
编辑: 谢谢@Red提到这一点
托管解决方案的主要问题是无法将流量路由到我们的专用网络,在那里我们还托管一个专用DNS区域。
此外,Kong的可扩展性使我们能够创建与我们的解决方案相关的逻辑。
为了实现冗余和高可用性,我们在不同AZ中的多个Kong实例之间进行循环
API配置保存在Postgres RDS上,该RDS也是内部和多AZ 流量
我想你可以在香港前面用ELB代替ALB。将www.example.com/api/*映射到该E