通过OKTA OIDC授权授予S3存储桶中的反应应用,具有PKCE流(AuthSdk错误)

问题描述 投票:1回答:2

[能否让我们知道我们是否可以成功部署S3存储桶中托管的React应用程序,该应用程序还与OIDC身份验证提供程序(OKTA)集成在一起,尤其是与PKCE流一起的授权授予。我正面临这个问题(AuthSdk错误:pkCE需要具有加密支持…PS协议的现代浏览器。PKCE需要安全的HTTPS协议cloudfront)

[我们试图遵循AWS文档,并能够将React SPA托管为静态网站,并且还尝试了各种不同的技巧,以能够成功地将回调重定向到React路由器(通过在重定向规则中添加#!),最终可以使用OKTA登录名登录到应用程序,但由于上述错误,回调不会成功。

使用S3存储桶url作为源而不是S3网站端点(自定义源)进行Cloudfront分发是否正确,使用https url解决pkce错误会有所帮助,因为S3存储桶url似乎通过https,但是S3网站终结点将仅通过http提供。

[当S3存储桶配置为原始站点时,Cloudfront将使用https URL,否则将使用http URL,因为S3存储桶发布为静态网站。

您能否分享对这种方法的任何想法。谢谢!

关于,Sudharshan。

reactjs amazon-s3 amazon-cloudfront openid-connect okta
2个回答
1
投票

我已经使用Okta作为cognito中的联合身份提供者,并使用React作为前端应用程序的SPA。只要您创建指向S3存储桶的Cloudfront发行版,就可以在其中将应用程序的响应捆绑包上传到其中。

[Okta需要使用https,才能将您重定向到所需的回调URL,但是S3仅为您提供http。因此,您需要将其部署到Cloudfront以启用https。

请记住将Cloudfront中的Origin Domain Name指向S3在启用静态托管后生成的URL。

希望这会有所帮助!


0
投票

标准技术是:

  • 使用S3作为上传您的Web静态内容的地方
  • 使用CloudFront通过HTTPS URL托管
  • 还可以将CloudFront用作内容交付网络以提高Web性能

[查看下面的我的博客文章,它们也托管了React SPA:

出于兴趣,您可以使用URL并通过我的quick start page上的测试登录帐户来运行上述博客文章中部署的SPA。

© www.soinside.com 2019 - 2024. All rights reserved.