在与 Google Cloud IoT Core 交互时限制用户对 IoT 项目的访问

Posted

技术标签:

【中文标题】在与 Google Cloud IoT Core 交互时限制用户对 IoT 项目的访问【英文标题】:Limit user access on IoT project while interacting with Google Cloud IoT Core 【发布时间】:2021-04-28 17:29:37 【问题描述】:

因此,我正在开发一个用于商业目的的自动照明系统,并且我打算使用 Google Cloud IoT Core 来管理设备通信。

用户将使用智能手机上的应用来管理家中的灯。他们将在应用程序上创建一个帐户并注册这些灯。然后他们将能够控制自己的亮度等。

我的问题是:我如何在 Google Cloud IoT 上构建我的项目以限制用户访问他们自己的设备,以防有人恶意修改我的智能手机应用程序(最坏的例子)?

在 Google Cloud IoT 上,我们有以下结构:

项目>注册表>设备

由于注册表数量限制为 100,因此为每个用户创建 1 个注册表不是一个可行的解决方案。

我曾考虑将应用程序的后端用作 Google Cloud 和应用程序之间的中间件,但使用它会使数据流量增加一倍,本质上会使维护项目的成本增加一倍,而且后端必须很多更强大地处理流量:

这将是充当中间件的后端:

用户>应用>后端>谷歌云物联网>后端>应用

这将是我想要的结构,但我不知道是否可能:

用户>应用>谷歌云物联网>应用

有什么办法吗?

【问题讨论】:

【参考方案1】:

这只是一个帐户管理。您的用户登录,您检索帐户和链接到它的设备列表,然后,用户可以与他们进行交互。像这样,您可以让多个用户与同一个帐户的设备进行交互。

您可以将授权数据列表(用户的设备)存储在数据库中,例如 Firestore。并使用 Cloud Identity Platform 对用户进行身份验证(它与 Firebase Auth 非常相似,如果您使用移动应用程序会更容易)

【讨论】:

谢谢纪尧姆!我是 Google Cloud 的新手,所以我来看看 不用担心,如果您需要更多信息,请告诉我。 好的,我想我明白了。假设用户想要获取有关他的灯的信息(如果它是打开或关闭的)。因此,他将登录到应用程序(他将使用 Cloud Identity Platform 进行身份验证),并且他将拥有自己的唯一 ID。使用他的 ID,我将在 firestore 数据库中查询分配给他的所有设备,然后他将选择他想要的设备。然后(如果我做对了)设备发布的所有状态也都保存在 firestore db 上(这不会消耗大量资源吗?)。那么我将查询这些结果并将它们呈现给用户 是的,没错。 Firestore 每天有 50k 读取和 30k 写入的免费配额。 太棒了!非常感谢纪尧姆!我帮了我很多

以上是关于在与 Google Cloud IoT Core 交互时限制用户对 IoT 项目的访问的主要内容,如果未能解决你的问题,请参考以下文章

D1net阅闻 | Google Cloud发布公开测试版Cloud IoT Core

如何将传感器数据(例如来自 DHT11 传感器的温度数据)发送到 Google Cloud IoT Core 并存储它

如何更改 Google IoT Core 的 MQTT 主机名

在IoT-Core上检索和编辑设备配置时的身份验证错误

如何在基于服务器的应用程序中直接使用 Google Cloud IoT 数据?

如何在 Google Core IoT 中进行配置?