子帳號存取控制管理
應用場景
當企業內部存在多帳號協同操作的場景時,可以使用子帳號管理功能來為不同職責的員工建立不同角色的子帳號。常規的子帳號解決的是功能存取權限劃分問題,例如「上傳者」角色的子帳號只能使用上傳客戶端上傳影片,「編輯員」角色的子帳號只能上傳和修改影片資訊,無法修改播放器和系統設定等,詳見子帳號管理。
但在某些場景下,企業希望能夠只允許子帳號存取一部分的影片資源,或者只允許子帳號呼叫一部分的 API 介面。
場景一
線上教育公司 A 旗下有三個子品牌,每個子品牌都作為獨立專案進行開發,每個專案都會用到影片點播服務。
公司 A 有以下要求:
- 專案獨立管理:每個開發團隊獨立管理各自的開發金鑰資訊以及專案所需的影片資源,不希望專案間相互干擾。
- 按專案分帳:財務部門希望能夠根據各專案的影片雲資源使用情況進行財務成本分攤。
- 共享影片點播服務:各專案共享公司採購的影片雲服務,公司上傳的部分影片資源也會由各專案共享使用。
場景二
公司 B 是影片內容生產商,其擁有的影片資源除了自己平台使用外,還會授權給合作夥伴使用,合作夥伴都有自己開發的平台。
公司 B 有以下要求:
- 需要能夠建立具有開發權限的子帳號給合作夥伴使用,合作夥伴使用子帳號的開發金鑰資訊進行影片的上傳、播放、管理等操作。
- 主帳號可隨時控制子帳號的狀態、可存取的影片資源範圍、API 權限範圍等。
- 主帳號可查詢每個子帳號的影片資源用量,與合作夥伴進行計費結算。
在上述類似的業務場景下,可透過點播管理後台的【帳號管理】功能建立「內容分發」角色的子帳號,並為其分配相應的影片資源存取權限和 API 呼叫權限。

功能使用說明
一、建立「內容分發」角色的子帳號
1) 登入點播管理後台,點選 【帳號管理】 → 【新增子帳號】,設定子帳號的相關資訊。注意:子帳號角色要選擇「內容分發」。


2) 子帳號建立成功後,點選子帳號列表操作欄的【修改】,可看到子帳號已擁有獨立的 appId 和 secretkey。點選【存取控制】,可為子帳號設定存取控制權限。

3) 影片分類授權設定功能說明如下:
- 當選擇「全部分類」後,子帳號將擁有點播主帳號下所有影片資源的存取權限。
- 當設定禁止存取的分類後,子帳號將擁有除禁止存取的影片分類外,所有影片資源的存取權限。
- 當設定允許存取的分類後,子帳號將只可以存取該項設定的分類。
- 分類可設定多個,但只能選擇一級分類。多個子帳號可共享某一分類的存取權限。
4) API 權限設定功能說明如下:
- 點播影片播放權限:設定此權限後,子帳號可透過自身的 appId 和 secretkey 呼叫建立 Playsafe Token 的 API 介面,從而能夠播放加密影片,詳見取得影片播放憑證。
- 點播影片上傳權限:設定此權限後,子帳號將能夠上傳影片至雲點播平台。暫時只支援透過 JS SDK 上傳。詳見:Web 上傳 SDK 使用文件。
- 點播服務唯讀存取權限:設定此權限後,子帳號將能夠呼叫部分查詢類的 API 介面:
- 點播服務管理權限:設定此權限後,除上述查詢類的 API 外,子帳號將能夠呼叫部分管理類的 API 介面:
注意:子帳號的 API 權限是基於分類授權設定的,也就是說子帳號只能在獲得授權的分類下,進行 API 介面的呼叫。
二、透過「內容分發」角色的子帳號使用雲點播服務
擁有對應權限的「內容分發」角色的子帳號可以使用雲點播的影片上傳、播放、管理等服務,影片和分類資訊的增刪改查可透過 API 介面來操作,影片上傳和播放則需要上傳 SDK 以及播放 SDK 來實現。
1) 子帳號使用 JS 上傳 SDK
JS 上傳 SDK 的使用文件請參考:Web 上傳 SDK 使用文件。需在 SDK 中設定**子帳號**的授權驗證資訊:
videoUpload.updateUserData({
appId: <appId> , // Polyv云点播子账号的appId
timestamp: <timestamp> , // 时间戳,注意:系统时间不正确会导致校验失败
sign: <sign> , // 签名计算方式为:md5(`${secretkey}appId${appId}timestamp${timestamp}${secretkey}`).toUpperCase()。需使用子账号的secretkey计算签名
});
注意:子帳號必須擁有影片上傳權限才可以上傳影片,並且上傳的分類目錄必須是子帳號擁有存取權限的分類。
2) 子帳號使用 Web 播放器播放加密影片
子帳號使用 Web 播放器,需在嵌入程式碼中傳入子帳號身分資訊和播放加密影片的 token,嵌入程式碼範例如下:
<div id="player"></div>
<script src="//player.polyv.net/resp/vod-player/latest/player.js"></script>
<script>
var player = polyvPlayer({
wrap: '#player',
width: 800,
height: 533,
vid: '88083abbf5bcf1356e05d39666be527a_8' ,
appId:'JmgU6BCGov', // 子账号appId,可在管理后台获取
playsafe:'81814fed-bdd0-4506-bec1-ebc8093148c5-hfevwsfxcsbcocx', // PC H5播放加密视频所需的token,服务端需使用子账号的appId和secretkey调用创建Playsafe Token接口获取。
ts:'1568131545000', //移动端H5播放Web加密视频需要传ts、sign参数。ts为13位的毫秒级时间戳
sign:'88313661ba7ded642c7b557b0a364b4b' // sign从业务方服务端获取,计算规则为:md5(子账号secretkey+vid+ts)
});
</script>
- 子帳號 appId 為必填項目
- playsafe 參數用於 PC H5 播放器解密,ts、sign 用於行動端 H5 播放器解密。如果 PC 和行動端使用同一份程式碼,則三個參數都需要傳值。
- Web 播放器的詳細功能介紹,請查看:Web 播放器文件。
3) 使用子帳號整合 iOS/Android SDK
使用子帳號整合 SDK 除了需使用子帳號 appId、secretkey 進行初始化外,與主帳號整合 SDK 並無差別。
Android SDK 中需使用settingsWithAppId()方法進行初始化:
PolyvSDKClient client = PolyvSDKClient.getInstance();
client.settingsWithAppId(String appId, String secretKey, String userId); // 子账号的appId以及secretkey,userId为主账号的userId
iOS SDK 中需使用PLVVodSettings類別中的+ (instancetype)settingsWithAppId:(NSString *)appId secretKey:(NSString *)secretKey userId:(NSString *)userId方法進行子帳號的初始化。
Polyv 點播 SDK 的使用文件詳見:
三、查看子帳號的用量統計
登入點播管理後台,點選 【數據統計】 → 【子帳號統計】,可查看子帳號的流量、播放量等統計數據。

註:統計功能需聯絡客服開通後才可使用
