我想创建一个物联网设备,该设备将在Firestore中存储一些收集的数据和配置。
用户应该能够从移动应用访问其设备的数据。
我担心设备的安全性,以防其被反向工程。
理论上,设备应该只能访问和修改其数据。 用户可能可以访问多种设备。
我已经看到了多种使用Firebase进行身份验证的方法:
我无法使用Firebase身份验证,因为该设备可能由多个用户使用,甚至没有用户使用,但仍将其数据更新为Firestore。
我应该对设备上的客户端应用程序使用哪种身份验证? 我看到了多种解决方案:
答案 0 :(得分:0)
您可以使用匿名身份验证来授权您的IoT设备访问Firestore。匿名身份验证不会限制您的设备,比如说一个电子邮件密码身份验证,因此您可以将设备分配给任何用户。
您将需要实现安全功能,以限制IoT设备何时可以读写Firestore。如果您认为设备受到威胁,这将帮助您切断对Firestore的访问。
我假设每个设备都会有一些唯一的序列号来标识它。 创建一个数据节点,将序列号映射到两个布尔a(read),b(write)。发行设备时,或当您的应用程序中的用户请求使用该设备时,请将布尔值标记为true。这将确定给定的序列号对其具有读写权限。
现在在设备将要写入/读取的数据节点上(例如config / {serialNumber}或log / {serialNumber}),添加firestore安全规则,该规则将检查给定的序列号是否已被授权对其进行读写。
您还可以使用log / {serialNumber} / {uid}这样的方案,根据使用数据的用户将物联网写入数据分成大块