当我在AWS CloudFront中需要GET时,我如何处理来自第三方身份验证的POST



我使用AWS Cloudfront来提供来自私有s3 bucket的静态html和图像。我需要一个身份验证层,并且需要使用Microsoft SSO。为了触发身份验证检查,我有一个连接到Cloudfront Viewer Request的Lambda函数。

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

我曾尝试在发布或提供链接到我想要的HTML的简单HTML时重定向到Cloudfront URL,但这两种情况都会导致再次调用Viewer Request。

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

您应该能够返回重定向,但将状态代码设置为303,而不是其他3xx代码之一。这是See Other,导致浏览器遵循重定向,但在第二个请求上使用GET。没有办法欺骗CloudFront让其相信方法发生了变化——需要重定向。

最新更新