function addTokenRestrictedAuthorizationPolicy($restProxy, $contentKey, $tokenType) { // 4.1 Create ContentKeyAuthorizationPolicyRestriction (Token Restricted) $tokenRestriction = generateTokenRequirements($tokenType); $restriction = new ContentKeyAuthorizationPolicyRestriction(); $restriction->setName('ContentKey Authorization Policy Restriction'); $restriction->setKeyRestrictionType(ContentKeyRestrictionType::TOKEN_RESTRICTED); $restriction->setRequirements($tokenRestriction); // 4.2 Create ContentKeyAuthorizationPolicyOption (AES) $option = new ContentKeyAuthorizationPolicyOption(); $option->setName('ContentKey Authorization Policy Option'); $option->setKeyDeliveryType(ContentKeyDeliveryType::BASELINE_HTTP); $option->setRestrictions(array($restriction)); $option = $restProxy->createContentKeyAuthorizationPolicyOption($option); // 4.3 Create ContentKeyAuthorizationPolicy $ckapolicy = new ContentKeyAuthorizationPolicy(); $ckapolicy->setName('ContentKey Authorization Policy'); $ckapolicy = $restProxy->createContentKeyAuthorizationPolicy($ckapolicy); // 4.4 Link the ContentKeyAuthorizationPolicyOption to the ContentKeyAuthorizationPolicy $restProxy->linkOptionToContentKeyAuthorizationPolicy($option, $ckapolicy); // 4.7 Associate the ContentKeyAuthorizationPolicy with the ContentKey $contentKey->setAuthorizationPolicyId($ckapolicy->getId()); $restProxy->updateContentKey($contentKey); print "Added Content Key Authorization Policy: name={$ckapolicy->getName()} id={$ckapolicy->getId()}\r\n"; return $tokenRestriction; }
function addTokenRestrictedAuthorizationPolicy($restProxy, $contentKey, $tokenType, $fairPlayASK, $fairPlayPfxPassword, $fairPlayPfxFile, $fairPlayIV) { // 4.1 Create ContentKeyAuthorizationPolicyRestriction (Token Restricted) $tokenRestriction = generateTokenRequirements($tokenType); $restriction = new ContentKeyAuthorizationPolicyRestriction(); $restriction->setName('ContentKey Authorization Policy Restriction'); $restriction->setKeyRestrictionType(ContentKeyRestrictionType::TOKEN_RESTRICTED); $restriction->setRequirements($tokenRestriction); // 4.2 Configure FairPlay license options. $fairPlayConfiguration = configureFairPlayPolicyOptions($restProxy, $fairPlayASK, $fairPlayPfxPassword, $fairPlayPfxFile, $fairPlayIV); // 4.3 Create ContentKeyAuthorizationPolicyOption (FairPlay) $fairPlayOption = new ContentKeyAuthorizationPolicyOption(); $fairPlayOption->setName('Deliver Common CBC Content Key with token restrictions'); $fairPlayOption->setKeyDeliveryType(ContentKeyDeliveryType::FAIRPLAY); $fairPlayOption->setRestrictions(array($restriction)); $fairPlayOption->setKeyDeliveryConfiguration($fairPlayConfiguration); $fairPlayOption = $restProxy->createContentKeyAuthorizationPolicyOption($fairPlayOption); // 4.4 Create ContentKeyAuthorizationPolicy $ckapolicy = new ContentKeyAuthorizationPolicy(); $ckapolicy->setName('ContentKey Authorization Policy'); $ckapolicy = $restProxy->createContentKeyAuthorizationPolicy($ckapolicy); // 4.5 Link the ContentKeyAuthorizationPolicyOption to the ContentKeyAuthorizationPolicy $restProxy->linkOptionToContentKeyAuthorizationPolicy($fairPlayOption, $ckapolicy); // 4.6 Associate the ContentKeyAuthorizationPolicy with the ContentKey $contentKey->setAuthorizationPolicyId($ckapolicy->getId()); $restProxy->updateContentKey($contentKey); echo "Added Content Key Authorization Policy: name={$ckapolicy->getName()} id={$ckapolicy->getId()}" . PHP_EOL; return $tokenRestriction; }
function addTokenRestrictedAuthorizationPolicy($restProxy, $contentKey, $tokenType) { // 4.1 Create ContentKeyAuthorizationPolicyRestriction (Token Restricted) $tokenRestriction = generateTokenRequirements($tokenType); $restriction = new ContentKeyAuthorizationPolicyRestriction(); $restriction->setName('ContentKey Authorization Policy Restriction'); $restriction->setKeyRestrictionType(ContentKeyRestrictionType::TOKEN_RESTRICTED); $restriction->setRequirements($tokenRestriction); // 4.2 Configure PlayReady and Widevine license templates. $playReadyLicenseTemplate = configurePlayReadyLicenseTemplate(); $widevineLicenseTemplate = configureWidevineLicenseTemplate(); // 4.3 Create ContentKeyAuthorizationPolicyOption (PlayReady) $playReadyOption = new ContentKeyAuthorizationPolicyOption(); $playReadyOption->setName('PlayReady Authorization Policy Option'); $playReadyOption->setKeyDeliveryType(ContentKeyDeliveryType::PLAYREADY_LICENSE); $playReadyOption->setRestrictions(array($restriction)); $playReadyOption->setKeyDeliveryConfiguration($playReadyLicenseTemplate); $playReadyOption = $restProxy->createContentKeyAuthorizationPolicyOption($playReadyOption); // 4.4 Create ContentKeyAuthorizationPolicyOption (Widevine) $widevineOption = new ContentKeyAuthorizationPolicyOption(); $widevineOption->setName('Widevine Authorization Policy Option'); $widevineOption->setKeyDeliveryType(ContentKeyDeliveryType::WIDEVINE); $widevineOption->setRestrictions(array($restriction)); $widevineOption->setKeyDeliveryConfiguration($widevineLicenseTemplate); $widevineOption = $restProxy->createContentKeyAuthorizationPolicyOption($widevineOption); // 4.5 Create ContentKeyAuthorizationPolicy $ckapolicy = new ContentKeyAuthorizationPolicy(); $ckapolicy->setName('ContentKey Authorization Policy'); $ckapolicy = $restProxy->createContentKeyAuthorizationPolicy($ckapolicy); // 4.6 Link the ContentKeyAuthorizationPolicyOption to the ContentKeyAuthorizationPolicy $restProxy->linkOptionToContentKeyAuthorizationPolicy($playReadyOption, $ckapolicy); $restProxy->linkOptionToContentKeyAuthorizationPolicy($widevineOption, $ckapolicy); // 4.7 Associate the ContentKeyAuthorizationPolicy with the ContentKey $contentKey->setAuthorizationPolicyId($ckapolicy->getId()); $restProxy->updateContentKey($contentKey); print "Added Content Key Authorization Policy: name={$ckapolicy->getName()} id={$ckapolicy->getId()}\r\n"; return $tokenRestriction; }