1

我正在使用 AWS Cloudfront 提供来自私有 s3 存储桶的静态 html 和图像。我需要一个身份验证层并且需要使用 Microsoft SSO。为了触发身份验证检查,我有一个连接到 Cloudfront 查看器请求的 Lambda 函数。

据我了解,当我想通过查看器请求(身份验证后)时,我需要在回调方法中返回请求。我的问题是 Microsoft SSO 使用 HTTP POST 重定向到 Cloudfront URL。如果我返回请求,Cloudfront 会尝试 POST 到 S3(或在我禁用 POST 时发送 MethodNotAllowed)。我需要这是一个 GET 请求,但不知道如何更改它。根据文档,请求对象的 HTTP 是只读的。

我在发布或提供链接到我想要的 html 的简单 HTML 时尝试重定向到 Cloudfront URL,但这都会导致再次调用查看器请求。

有没有人处理过类似的情况?

4

1 回答 1

1

您应该能够返回重定向,但将状态代码设置为303而不是其他 3xx 代码之一。这See Other导致浏览器遵循重定向但GET在第二个请求中使用。无法诱使 CloudFront 相信方法已更改——需要重定向。

于 2020-04-30T01:15:41.410 回答