AWS Api网关:如何处理授权,身份validation,SSO等

我正在评论几种使用微服务结合api网关重新开发node.js restful单片应用程序的方法。 在使用aws api网关看来,虽然似乎有一些项目,我一直没能find很多的文件。 首先,我devise的应用程序必须能够支持SSO,我希望用户能够通过创build本地login或使用其当前的Facebook,Twitter等社交帐户进行注册。

这个过程如何被aws api网关处理,尤其是因为我需要使用自定义的数据库来写和读,更不用说授权用户了。

另外,例如,我的微服务有以下有限的上下文:

帐户(login,注册,档案pipe理),

计费(由于运行时间可能不适合无服务器,可能会selectdocker + ec2),

朋友(build立朋友关系),

文件(用户可以上传图片和video到他们的时间线 – 似乎是另一个docker+ ec2候选人);

我想使用api网关来保护所有的微服务端点,除了那些特定于login和注册的微端服务端点,应该怎么做呢?

Node.js包含一个包,似乎通过Facebook,Twitter,本地等称为护照处理jwt和authentication用户,我可以使用这个与api网关authentication?

另外,如果api网关正在保护微服务,请求对象和响应对象如何在网关和微服务之间传递以满足各种请求?

此外,如果我决定构build一个自定义api网关,其中的网关正在监听另一个端口并包含在单独的docker容器中,它应该如何调整其他docker容器中侦听其他端口的微服务的权限?

简而言之,任何真正遍历这个过程并回答上面列出的问题的文档都是非常有用的。 此外,如果我以错误的方式看待这个问题或者提出错误的问题,那么在这方面的build议也会有所帮助。

我build议使用Cognito用户池来保护您的API,但是由于API Gateway不支持VPC集成,所以您需要一个Lambda函数作为后端。 我build议你看看这个博客文章 ,设置cognito用户池作为你的API的授权者。

如果您希望客户自己注册用户,则可以使用Lambda函数执行注册逻辑,并通过API网关将其公开。