Policy结构简述

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

Policy结构简述如下:

支持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、Capture、Video、Ptz、Upgrade、Format、Pipe、Config等现已定义的设备操作权限和以后定义的设备操作权限
Real dev、cam 视频预览
Replay dev、cam 视频回放(包括本地录像回放和云存储回放)
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 ""