1. Policy结构简述

Policy结构包括授权语句列表。每个授权语句又包括Permission(操作权限)以及Resource(操作对象列表)。

Policy结构简述如下:

1.1.1. 支持JSON格式描述

目前仅支持JSON格式的描述。当创建或更新Policy时,云平台会首先检查JSON格式的正确性。关于JSON的语法标准请参考RFC 7159。用户也可以使用一些在线的JSON格式验证器和编辑器来校验JSON文本的有效性。

Policy语法

语法描述的符号使用说明

1. Policy所包含的JSON字符有:
   { } [ ] " , :
2. 描述语法使用的特殊字符有:
   = < > ( ) |
3. 当一个元素允许多值时,这里使用逗号和省略号来表达,比如:
   [<resource_string>, <resource_string>, ...]
4. 使用双引号引起了的元素,表示它是文本串。比如:
   <permission_block> = "Permission" : "<permission_string>, <permission_string>, ..."

语法描述

policy  = {
     <statement_block>
}

<statement_block> = "Statement" : [ <statement>, <statement>, ... ]

<statement> = {
    <permission_block>,
    <resource_block>
}

<permission_block> = "Permission" : "<permission_string>, <permission_string>, ..."

<resource_block> = "Resource" : [<resource_string>, <resource_string>, ...]

Policy语法说明:

  • 一个Policy可以有多条授权语句(Statement)。
  • 一条授权语句中,Permission是一个支持多个操作权限的文本串,Resource是一个支持多个对象的列表。
Permission(操作权限)

permission支持多值,取值为萤石开放平台所定义的操作权限名称,包括以下权限:

Permission 适用资源类型 描述
Update dev、cam 修改资源,例如修改设备名称、通道名称
Get dev、cam 查询资源信息,包括配置信息等
DevCtrl dev、cam 设备完全控制,包括Real、Replay、Alarm、Capture、Video、Ptz、Upgrade、Format、Pipe、Config等现已定义的设备操作权限和以后定义的设备操作权限
Real dev、cam 视频预览
Replay dev、cam 视频回放(包括本地录像回放和云存储回放)
Alarm dev 获取设备告警信息,订阅告警消息
Capture dev、cam 设备抓图
Video dev、cam 设备录像
Ptz dev、cam 设备云台控制
Upgrade dev 设备升级
Format dev 格式化设备磁盘
Pipe dev 使用开放平台透明通道功能
Config dev、cam 配置设备,例如视频加密,布撤防,关联NVR和IPC等

备注:当前版本子账户没有添加、删除设备权限;子账户客户端可以把添加、删除设备请求发送到开发者后台服务,后台服务再以开发者的身份调用开放平台接口添加、删除设备。

描述样例: "Permission": "Get,Update,DevCtrl"

Resource(操作对象列表)

Resource通常指操作对象,例如设备、通道。我们使用如下格式来命名资源: {resourceType}:{resourceId}

格式说明:

  • resourceType: 表示资源类型,现在只有2种资源类型,dev(设备)、cam(通道);
  • resourceId:表示资源Id,dev类型的resourceId是设备序列号,cam类型的resourceId是设备序列号:通道号

描述样例:"Resource": ["dev:469631729","cam:544229080:1"]。

Policy样例

如下的Policy样例包含两条授权语句(Statement):第1条授权语句是允许对469631729设备和544229080:1通道有查询资源信息(Get)、修改信息(Update)、预览(Real)、回放(Replay)等权限;第2条授权语句是允许对470686804设备有查询资源信息(Get)和预览(Real)权限。

{
    "Statement": [
        {
            "Permission": "Get,Update,Real,Replay",
            "Resource": [
                "dev:469631729",
                "cam:544229080:1"
            ]
        },
        {
            "Permission": "Get,Real",
            "Resource": [
                "dev:470686804"
            ]
        }
    ]
}

results matching ""

    No results matching ""