Jim*_*her 5 spring-security aws-lambda
我正在考虑在AWS Lambda以及可能的AWS API Gateway上将服务实现为一系列REST终结点。前端将是一个JS浏览器客户端,该客户端直接调用这些端点,而无需中间层。
在我的研究中,我似乎找不到的是,如何确保可以访问所谓“登录”人员的电话?我看到Lambda调用是无状态的,因此没有会话数据。除了知道它们已经过身份验证并在相同情况下有权访问特定端点之外,我不需要会话数据。将有一个数据库(DynamoDB或RDS),因此如果我需要会话数据,则可以创建它。
有没有办法做到这一点?我知道我可以在每个API调用中传递其用户名和密码,但是似乎必须有更好的方法。
同样,这可能会用Java实现。我可以使用Spring Security吗?
我认为您不想在 Lambda 函数中使用 Spring Security。我无法想象这种方法能很好地发挥作用,而且我怀疑它根本不会起作用。即使它可以在 Lambda 上运行,它也肯定会增加函数的冷启动时间,超出您想要处理的时间。
向无状态服务提供用户身份验证检查的推荐方法是使用 JWT(JSON Web 令牌)。Auth0在这里提供了一篇关于 JWT 的优秀综合文章,以及有关将 Auth0 与 API Gateway 和 Lambda 结合使用的教程。即使您不使用 Auth0,我认为第二个教程对于了解如何在 API Gateway 和 Lambda 上执行用户身份验证也很有用。
您还可以使用API Gateway 自定义授权函数,该函数允许您将所有身份验证代码封装在一个 Lambda 函数中,该函数充当 API 端点的“看门人”。我建议使用自定义授权 Lambda 函数来验证提交到 API 的 JSON Web 令牌。
| 归档时间: |
|
| 查看次数: |
1991 次 |
| 最近记录: |