【发布时间】:2021-03-11 16:36:48
【问题描述】:
我有一个在谷歌云上运行的 React 应用程序,具有用户身份验证和权限。
现在我想为应用程序编写文档。这些文件将是保存在谷歌云存储中的静态站点。
在应用中,不同权限的用户可以访问应用的不同路由,如果权限也适用于文档就好了。
我未经测试的解决方案是控制用户对应用程序路由的访问,并且某些路由会呈现一个页面,该页面包含一个 <Iframe>,它检索文档然后显示它。
我的问题是:是否可以限制对静态站点的访问,只允许从云运行时持有的 react 应用程序访问?
或者对app文档的访问控制有什么建议吗?
"documents" 应该是从 markdown 文件转换而来的 html 文件。它们是关于应用是什么以及如何使用应用的文档。
而且我不希望具有常规授权的用户看到有关“应用程序的管理员配置”的文档部分。
将文档作为静态站点保存更简单。我可以使用 gitbook(或其他工具)来渲染 markdown 文件。在 React 中管理和渲染 markdown 文件的样式会有点痛苦。
我还在努力学习我的英语。对混乱感到抱歉。
【问题讨论】:
-
文档是什么意思?为什么需要 GCS?为什么需要 iframe?为什么不从 Cloud Run 服务而不是 GCS 提供内容?
-
iframe 与否,问问自己:谁会要求文件?云跑?浏览器?答案将塑造您的解决方案设计!
-
1) 如果您在 IFrame 中嵌入某些内容,则请求不是来自 Cloud Run,而是来自用户的浏览器。因此 Cloud Run 不是请求的来源,因此答案是否定的。 2)通过摆弄路线,您正在尝试通过默默无闻的安全性。那很糟糕/没有安全性。生成的 URL 是可见的。 3) 要在 IFrame 中显示来自 Cloud Storage 的资源,要么要求存储桶/对象公开,要么您需要实施 Cloud Storage 授权。具有短生命周期的预签名 URL 是一种选择。
-
4) 研究各种云存储授权机制并选择一种满足您的目标。
-
文件是什么意思?火库文件?为什么他们会是一个静态网站?如果文档只是云存储对象,那么您可以使用云存储客户端库在您的云运行服务中提供它们。 cloud.google.com/storage/docs/reference/…
标签: google-cloud-storage google-cloud-run static-site