当前位置: 首页 > 知识库问答 >
问题:

AWS Api网关:如何处理授权、身份验证、SSO等

潘宪
2023-03-14

我正在回顾几种重新开发节点的方法。js restful单片应用程序,使用微服务与api网关相结合。在使用aws api网关的过程中,似乎有一些项目我没有找到很多相关文档。首先,我正在设计的应用程序必须能够支持SSO,我希望用户能够通过创建本地登录或使用他们当前的facebook、twitter等社交帐户进行注册。

aws api gateway将如何处理这个过程,尤其是因为我需要使用自定义数据库进行写入和读取,更不用说授权用户了?

此外,例如,假设我的微服务具有以下有界上下文:

账户(登录、注册、个人资料管理),

计费(由于运行时间,可能不适合无服务器,可以选择docker ec2),

朋友(建立朋友协会),

文件(用户可以将图片和视频上传到他们的时间线-似乎是另一个docker ec2候选者);

我想使用一个api网关来保护所有的微服务endpoint,除了那些特定于登录和注册的endpoint,这应该怎么做?

节点。js包含一个包,似乎可以通过facebook、twitter、local等处理jwt和身份验证用户。名为passport,我可以将其与api网关身份验证一起使用吗?

此外,如果api网关保护微服务,那么对于各种请求,请求对象和响应对象如何在网关和微服务之间传递?

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

简而言之,任何真正了解这个过程并回答我上面列出的问题的文档都将非常有用。此外,如果我以错误的方式看待这个问题或提出错误的问题,这方面的建议也会很有帮助。

共有1个答案

齐航
2023-03-14

我建议使用Cognito用户池来保护您的API,但您需要一个Lambda函数作为后端,因为API网关不支持VPC集成。我建议你看看这篇博客文章,把cognito用户池设置为API的授权人。

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

 类似资料:
  • 我不熟悉spring微服务世界。由于我处于学习阶段,我尝试并实施了以下内容。 > 路由(能够使用Spring云网关进行路由) 负载平衡(Netflix Eureka) 限速和断路器 我只需要一些澄清和建议,说明在这些情况下该怎么做: 因为我已经创建了身份验证/授权作为一个单独的微服务集中。现在我如何实现这样的每个请求必须包含jwt令牌和通过API网关调用其他微服务也应该检查哪个用户有权限访问其他微

  • 我要找的是一些别人如何解决这个问题的建议/经验。如果需要,我很乐意提供更多的信息。 为了让您更容易地给出建议,这里有两个选择的简短描述:1)使用JWT处理身份验证和授权?为什么?2)保持JWT的轻量级,并在每个微服务中向授权服务器发出请求?为什么?

  • OAuth术语已经困扰我很久了。OAuth授权是像一些人建议的那样,还是认证? 如果我错了,请纠正我,但我一直认为授权是允许某人访问某个资源的行为,而OAuth似乎没有任何实际允许用户访问给定资源的实现。OAuth实现所讨论的都是为用户提供一个令牌(签名的,有时是加密的)。然后,每次调用都会将该令牌传递到后端服务endpoint,在后端服务endpoint上检查该令牌的有效性,这也不是OAuth的

  • 我有一个已经完成的j2ee(jsf、cdi、jpa)应用程序,它完美地使用了ApacheShiro,它工作得非常好,我喜欢Shiro注释(hasRole、hasPermission等)。 现在,该项目还必须能够通过SiteMinder进行身份验证,我的问题是: 我如何设置一个领域来处理SiteMinder身份验证而不丢失Shiro授权(似乎SiteMinder会在HTTP头中给我用户名和Rolen

  • 我们正在尝试找出IPC身份验证和授权的最佳实践。我会解释的。我们有一个基于微服务的体系结构SaaS和一个专门的认证服务。该服务负责执行身份验证和管理身份验证令牌(JWT)。 现在的问题是如何验证和授权由其他服务发起的请求(没有特定用户的上下文)? 我们是否应该为每个服务生成一个专用用户,并像对待系统中的任何其他用户一样对待它(具有适当的权限)? 我们是否应该在服务之间部署“硬编码”/动态令牌? 还

  • 我的问题是,我们有一组运行SiteMinder但非常糟糕的遗留代码。它允许IIS匿名并避免使用Active Directory。 我们正在重建此应用程序,并希望将SiteMinder与IIS和集成。净额4.0。我知道我可以构建自己的安全框架,无需用户名和密码即可完成所有工作(因为我们不希望SiteMinder提供),但我想知道是否有办法使用内置的Windows身份验证(窗体或Windows)与Si