【发布时间】:2021-06-13 08:44:45
【问题描述】:
我在 S3 上托管了一个 webapp,我们使用 S3 Hosting 链接来访问该 webapp。我们在应用程序上有一个登录选项,可以从内部调用 Okta 登录链接。 S3 链接上一切正常,我已将 S3 CORS 上的 Okta 链接启用为允许的来源。我最近将 S3 Origin 添加到 Cloudfront,现在,由于 Okta 链接被 CORS 策略阻止,我无法继续登录。
详情:
- 整个网站按预期正常运行。
- CORS 问题仅出现在 Cloudfront 链接上。使用 S3 静态链接时不会出现 CORS 错误。 (因为添加了 S3 CORS 以允许 Okta 链接)
- 出现的错误:跨源资源共享错误:PreflightMissingAllowOriginHeader。
CORS 政策已阻止从源“https://{cloudfront_release}.cloudfront.net”访问“https://{my_okta_org}.okta.com/api/v1/authn”获取:响应预检请求未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。
问题:
- 我必须在 Cloudfront 上添加哪些配置更改才能在 S3 上允许允许的 CORS?
参考:
其他细节:
- S3 中允许使用 CORS:
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET",
"PUT",
"POST",
"DELETE",
"HEAD"
],
"AllowedOrigins": [
"https://{my_okta_url}.okta.com"
],
"ExposeHeaders": []
},
- 云端详情:
【问题讨论】:
-
嗨@aviboy2006 感谢您推荐解决方案,但问题似乎与错误处理无关。它实际上是基于 CORS 的。我无法将来源从云端转发到 S3。
标签: reactjs amazon-web-services amazon-s3 cors amazon-cloudfront