【问题标题】:Injecting data to web application from AWS Lambda & CloudFront从 AWS Lambda 和 CloudFront 向 Web 应用程序注入数据
【发布时间】:2022-01-18 19:15:01
【问题描述】:

我正在为我的应用程序实施访问管理器,但还没有找到一个优雅的解决方案来将数据从 AWS Lambda 传递到客户端。

用户将尝试访问指向访问管理器 IP 地址的https://myapplication.com/。访问管理器将检查会话是否存在或提示用户登录。一旦通过身份验证,访问管理器将从 CloudFront 获取我的应用程序,并在授权标头中使用 Bearer 令牌。在查看器请求中,我使用 Lambda 函数验证该令牌,如果成功则返回应用程序,否则返回 401 错误。任何不是来自访问管理器的查看器请求也会返回 401。

验证令牌时,我能够检索用户信息,例如用户名、角色、电子邮件等。我想通过查看器响应将来自 Lambda 的数据传递给客户端。我在这里有什么选择?我尝试在标题中传递数据,但我不相信有任何方法可以查看我的应用程序中的初始页面加载标题?我可以将数据设置为 cookie 并以这种方式访问​​它,但我认为这不太安全。也许如果我将该数据加密为 jwt,将其设置为 cookie 并在客户端解密?

我的主要应用程序是通过 CloudFront 从 S3 提供的 Angular。我还有几个 Flask 应用程序,我想在之后连接到访问管理器。

感谢任何指针。

谢谢!

【问题讨论】:

    标签: amazon-web-services security authentication aws-lambda amazon-cloudfront


    【解决方案1】:

    您可以在访问管理器上创建另一个 API,以返回现有会话已验证的用户详细信息。让 Angular 应用程序调用 API。

    【讨论】:

      【解决方案2】:

      对此可能有多种解决方案。以下是我想到的一些解决方案。

      【讨论】:

      • 感谢您的建议。您建议如何访问我的应用程序中的数据(无论是 jwt、令牌、用户信息还是其他)?我很高兴在 lambda 中创建一个 jwt 并在我的应用程序中对其进行解码,但我不确定将该 jwt 传递给应用程序的最佳方式。 cookie 是否足够安全?我可以将其设置为标头,但我无法找到从应用程序访问该标头的方法,因为它与页面加载一起提供。
      • 是的,您可以在 cookie 中设置 JWT 并设置一些安全 http 标头进行保护。您还可以在正文中附加 JWT。查看此博客以了解此确切讨论:blog.angular-university.io/angular-jwt-authentication
      猜你喜欢
      • 2021-06-24
      • 2022-07-28
      • 2018-08-02
      • 2021-05-14
      • 2023-03-03
      • 1970-01-01
      • 2022-01-01
      • 2020-10-22
      • 1970-01-01
      相关资源
      最近更新 更多