子账号与授权策略
子账号与授权策略
子账号用来限制开发者管理员账号的权限。管理员 accessToken 能操作该账号下的全部设备。把它交给应用或第三方之后,泄露会影响整个账号。给不同用户不同的子账号,某个子账号泄露时,影响范围停在该子账号已获授权的资源上。
是什么
- 子账号:从开发者账号创建。每个子账号有自己的 Id。
- 授权策略(Policy):一组权限规则,例如允许预览某台设备。
- 资源:被授权的对象。设备写成
dev:{设备序列号},通道写成cam:{设备序列号}:{通道号}。
通道资源属于设备资源。若把某设备的 Real 授给子账号,该设备下的通道默认也具备 Real。
策略怎么匹配
statement 里每一条包含 permission 和 resource。请求到来时逐条匹配。有一条匹配则允许,全部不匹配则拒绝。
{
"statement": [
{
"permission": "Ptz,Talk,Config",
"resource": ["dev:469631729", "cam:544229080:1"]
},
{
"permission": "Real",
"resource": ["dev:470686804"]
}
]
}
上面的序列号只说明写法,不是真实设备。
权限标识
| 权限标识 | 适用资源 | 说明 |
|---|---|---|
| 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 | 语音对讲 |
| DevControl | dev、cam | 当前已定义的设备操作权限,以及之后新增的同类权限 |
创建子账号、签发子账号令牌和写入策略的方法见 账号对接。
控制台 Alarm 策略与 推送配置 回调不是同一套配置。device.message.* 按条过滤规则见 权限码。
