具有客户端/应用身份验证而非用户身份验证的 Firebase Android 应用
Posted
技术标签:
【中文标题】具有客户端/应用身份验证而非用户身份验证的 Firebase Android 应用【英文标题】:A Firebase Android app with client/app authentication instead of user authentication 【发布时间】:2016-10-22 21:53:28 【问题描述】:我的应用没有个人用户,而是有一些由客户端生成的数据,其他人可以看到,比如公共聊天频道,用户名也是临时的。
我不需要对每个用户帐户数据进行身份验证。相反,如果请求来自我的应用程序,则应该提供,否则不提供。我看到有用户身份验证,但这意味着我必须跟踪 uid 等,这也增加了数据存储,其他选择是如果我删除身份验证(设置读/写公共)并从我的应用程序调用数据更改。
我可以在我的 android 应用程序中使用服务器使用的应用程序机密功能吗?如果可以,如何使用?这是服务器的规则:
"rules":
".read": true,
".write": "auth.uid = 'myserver'"
如何使它适用于我的 Android 应用程序?
当只有我知道 url 并且只有我的包是从服务器上的 android 应用选项配置时,我的应用在没有身份验证的情况下如何不安全(设置读/写公共)?
除了用户身份验证外,我还有什么方法可以保证数据安全吗?
【问题讨论】:
您可以使用 OAuth2 客户端凭据流 firebase Oauth2 api 在哪里?当我在 firebase 中搜索 oauth2 时,我仍在实施社交网站帐户。你能给我这个主题的链接吗? 你解决了吗?我也有兴趣 还没有。在我看来,唯一的解决方案是创建一个身份验证服务器,然后在 Firebase 和客户端之间创建并验证一些唯一密钥。 【参考方案1】:我知道你问这个问题已经有几年了,但我想让你知道,现在终于可以做到了。
借助名为 Firebase App Check 的新功能,现在实际上可以将对实时数据库的调用限制为仅来自在 Firebase 项目中注册的 ios、Android 和 Web 应用的请求。
您通常希望将此与安全规则提供的基于用户身份验证的安全性结合起来,以便用户只能做他们被授权做的事情。但在您的情况下,仅 App Check 可能/已经足够了。
【讨论】:
以上是关于具有客户端/应用身份验证而非用户身份验证的 Firebase Android 应用的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Firebase 身份验证服务并在我们自己的数据库中拥有用户?
在客户端级别(而非最终用户级别)保护 Firebase REST API