iOS中的Firebase“管理员用户”?
Posted
技术标签:
【中文标题】iOS中的Firebase“管理员用户”?【英文标题】:Firebase "admin user" in iOS? 【发布时间】:2021-11-05 16:15:27 【问题描述】:这是我想要实现的目标:
我有一个 ios 前端、一个 Vapor 后端和一个 Firebase 存储桶。我有一个应用程序,其中一小部分功能能够将图像添加到一些 Note 对象。当用户将图像附加到注释时,我想将图像上传到存储桶,获取存储它的密钥/url,并将其存储在后端数据库中。这一切都很简单,除了 - 我希望存储桶只能由我的 iOS 代码和我的后端代码访问,而不是任何人都可以公开访问。
后端由服务帐户内容覆盖。但我不确定如何覆盖 iOS 端。 Firebase 生成了这个基本规则来防止公共访问:
service firebase.storage
match /b/bucket/o
match /allPaths=**
allow read, write: if request.auth != null;
我相信这条规则只允许通过 Firebase 身份验证的用户使用存储桶,但我不打算通过 Firebase 对我的用户进行身份验证。有没有办法可以设置规则,使存储桶只能通过我自己的 iOS 代码访问?我是否应该只创建一个 Firebase 用户,并让该应用在每次应用启动时都以该用户身份进行身份验证?我可以配置 Firebase 以使其使用一些秘密来允许它执行超出规则的存储操作吗?
**为清晰起见进行了编辑
【问题讨论】:
查找 Firebase 匿名授权 【参考方案1】:正如@jnpdx 评论的那样,看看Firebase 的anonymous authentication,它允许您在不要求提供凭据的情况下登录(和识别)用户。基于此,您需要确保每个用户只能读取他们被授权的文件。
虽然if request.auth != null
最初看起来不错,但我发现从最小特权原则开始通常更好 - 例如have some form of content ownership based access rules。
最后,还请看一下今年早些时候推出的 Firebase App Check,它与您手机上的证明提供商合作,以降低未经授权的代码被用于调用存储 API 的风险。
【讨论】:
以上是关于iOS中的Firebase“管理员用户”?的主要内容,如果未能解决你的问题,请参考以下文章