# 平台鉴权
平台在设计实现的过程中,始终把安全摆在第一位。瀚云工业互联网平台是一个开放平台,对外开放基于HTTP协议的Restful API(简称API),并开放设备接入,通过这些API可以查询设备数据,给设备下发控制命令等。为避免相关操作被恶意调用,平台对所有相关操作都进行了权限控制,只有鉴权通过才可以进一步操作。
# 分级鉴权
为方便权限精细化管理,同时为减小权限不小心外泄的影响,平台对鉴权部分进行分级管理,主要分为4级:
- 用户级鉴权
- 产品级鉴权
- 设备级鉴权
- 项目级鉴权
同时根据主要功能进行了功能权限的划分:接入
,查询
,命令
,上报
。
权限的分级与功能权限划分具体细节请参考API说明文档,会描述某个API可用权限。
# 用户级鉴权
用户级鉴权(userAuthKey/userAuthSecret)具有最大的权限,可以操作该用户下的所有项目、所有产品、所有设备的数据和配置,每个用户都有自己的鉴权参数。该鉴权参数可以有多组,最多5组,每一组的功能都是一样的。当用户注册成功后,会自动生成1组鉴权参数,可在控制台添加或删除鉴权参数(至少要保留一组)。
用户在开发实践中,可以申请多个鉴权参数共享,正式上线后,删除并收回开发者手中权限,最大限度保证权限可控。
查看用户级鉴权请访问 User Auth Key (opens new window) 进行查看。鼠标滑动到主站右上角,也会出现查看入口。 因用户级鉴权的权限非常大,默认需要手机短信验证才可查看
# 产品级权限
产品级权限主要用于操作产品下所有设备与设备自主接入,当用户在平台上创建一个产品时,会自动为该产品生成鉴权参数,按功能分为四类:
- 接入(accessKey/accessSecret),主要在设备通过MQTT协议接入或者通过API创建设备时使用此鉴权参数。
- 查询(queryKey/querySecret),通过api查询该产品下的数据时,使用此鉴权。
- 命令(cmdKey/cmdSecret),通过api给该产品下的设备下发控制命令时,使用此鉴权。
- 上报(uploadKey/uploadSecret),通过api以某个设备的身份上传数据时使用此鉴权,新增和更新设备档案时使用此鉴权。
- 授权(authAccessKey/authAccessSecret),第三方定制化开发时使用设备通过MQTT协议接入或者通过API创建设备时使用此鉴权参数。
查看产品级鉴权请访问 控制台 (opens new window),选择项目,打开需要查看的产品并查看接入鉴权即可,如下图:
# 设备级鉴权
授权对象为单个设备,每个设备都对应一组设备级鉴权参数,当设备在HanClouds上初次创建时,平台自动生成该设备的鉴权参数。设备级鉴权参数分为3类:查询
,命令
,上报
Token可以简单理解为产品级权限的某个\*\*\*Secret
,主要用于在RestFul API中签名使用。
- 查询(queryToken)。
- 命令(cmdToken)。
- 上报(uploadToken)。
deviceSecret主要用于在设备数据传输时加密使用,详见MQTT数据传输或其它使用场景。
查看具体设备鉴权信息,需要先进入到设备详情页(控制台->选择项目 -> 左侧菜单栏选择设备管理 -> 设备列表中点击详情),接入鉴权下点击查看
,即可查看具体的鉴权信息。
# 项目级鉴权
当用户在平台上创建一个项目时,会自动为该项目生成鉴权参数authKey和authSecret,该鉴权参数不支持删除或修改。
查看具体项目鉴权信息,需要先进入到项目概览页(控制台 -> 选择项目),接入鉴权下点击查看
,即可查看具体的鉴权信息。
项目级鉴权在多种场景中都能用到,包括项目信息的管理、档案信息的管理、项目下产品信息的查询、设备信息的查询、设备数据流、事件、命令等操作。
# 鉴权模型参数
下图为鉴权模型参数命令,方便只管了解当前整个鉴权分级与功能分类关系。