子账号模式介绍
功能说明
子账号对接模式主要的作用是控制开发者管理员账户的权限,通过使用子账号对接模式可以在开发者管理员账户的权限范围内创建子账号,给不同的子账号分配不同的权限从而实现授权管理的目的。 子账号相关API
为什么要使用子账号对接模式
子账号需要解决的一个核心问题是如何在不暴露开发者AccessToken的情况下安全的授权别人访问设备。因为一旦开发者的AccessToken暴露出去会带来安全风险,别人可以有机会操作开发者管理员账户下所有的设备资源。
子账号功能是一种长期有效的权限控制机制,通过分出不同权限的子账号,将不同的权限分给不同的用户,这样一旦子账号泄露也不会造成全局的信息泄露。
基本概念
以下是子账号对接模式的一些基本概念:
子账号:从乐橙开放平台开发者账号中创建出来的子账号,每个子账号有一个Id。
授权策略(Policy):用来定义权限的规则,比如预览某个设备。
资源(Resource):用户可以访问的资源,比如序列号为469631729的设备,或者序列号为469631729的设备的第1个通道;
子账号授权策略(Policy)配置
Policy当中有一个Statement。Statement里面规定了相应的permission、resource。
下面是一个授权策略(Policy)示例:
{
"statement": [
{
"permission": "Ptz,Talk,Config",
"resource": [
"dev:469631729",
"cam:544229080:1"
]
},
{
"permission": "Real",
"resource": [
"dev:470686804"
]
}
]
}
这个Policy把开发者管理员账号下的469631729、544229080、470686804等设备资源进行授权,并且分别支持Ptz,Talk,Config,Real权限。
配置细则
permission
permission | 适用资源类型 | 权限描述 |
---|---|---|
Alarm | dev、cam | 设备告警消息查询 |
Config | dev、cam | 设备配置权限 |
Ptz | dev、cam | 云台控制 |
Capture | dev、cam | 设备抓图 |
Upgrade | dev | 设备升级 |
Format | dev | 格式化SD卡 |
Real | dev、cam | 实时预览 |
RecordReplay | dev、cam | 录像回放(包含云录像和本地录像) |
Talk | dev、cam | 语音对讲 |
权限对应的协议划分
permission | 协议名 |
---|---|
Alarm | deleteAlarmMessage、getAlarmMessage、getAlarmMessageById |
Config | modifyDeviceName、setDeviceCameraStatus、refreshDeviceCover、uploadDeviceCoverPicture、controlDeviceWifi、currentDeviceWifi、deleteCollection、deleteDoorKey、deviceAlarmPlan、frameReverseStatus、generateSnapkey、getCollection、getCruiseConfig、getDeviceAlarmParam、getDeviceCameraStatus、getDevicePowerInfo、getDoorKeys、getHeatMapData、getHeatMapEnable、getOpenDoorRecord、getPreparation、getSnapkeyList、getSoundVolumeSize、modifyCollection、modifyDeviceAlarmPlan、modifyDeviceAlarmStatus、modifyFrameReverseStatus、openDoorRemote、queryDeviceOsd、queryLocalRecordPlan、queryLocalRecordStream、setCollection、setCruiseConfig、setDeviceAlarmRegion、setDeviceAlarmSensitivity、setDeviceOsd、setHeatMapEnable、setLocalRecordPlan、setLocalRecordPlanRules、setLocalRecordStream、setPreparation、setSoundVolumeSize、turnCollection、wakeUpDevice、wifiAround |
Ptz | controlLocationPTZ、controlMovePTZ、devicePTZInfo |
Capture | setDeviceSnap、setDeviceSnapEnhanced |
Upgrade | deviceVersionList、upgradeDevice、upgradeProcessDevice |
Format | deviceSdcardStatus、deviceStorage、recoverSDCard |
Real | SDK 实时预览 |
RecordReplay | openCloudRecord、queryCloudRecordBitmap、queryCloudRecordNum、queryCloudRecords、deleteCloudRecords、queryCloudRecordCallNum、unBindDeviceCloud、unUsedCloudList、getDeviceCloud、queryCloudRecordByToken、getCloudRecords、getRecordByLinkageId、deviceCloudList、queryLocalRecordBitmap、queryLocalRecordNum、queryLocalRecords |
Talk | SDK 语音对讲 |