Обзор Служб мультимедиа Azure версии 3 с шаблоном лицензии Widevine

Службы мультимедиа Azure позволяют шифровать содержимое с помощью Google Widevine. Службы мультимедиа также обеспечивают доставку лицензий Widevine. С помощью интерфейсов API Служб мультимедиа Azure можно настраивать лицензии Widevine. Когда проигрыватель пытается воспроизвести содержимое, защищенное с помощью Widevine, в службу доставки лицензий отправляется запрос на получение лицензии. Если служба лицензий утвердит запрос, служба выдаст лицензию. Лицензия отправляется клиенту и используется для расшифровки и воспроизведения указанного содержимого.

Примечание

Widevine недоступен в регионе GovCloud.

Запрос на лицензию Widevine форматируется как сообщение JSON.

{
    "payload":"<license challenge>",
    "content_id": "<content id>"
    "provider": "<provider>"
    "allowed_track_types":"<types>",
    "content_key_specs":[
        {
            "track_type":"<track type 1>"
        },
        {
            "track_type":"<track type 2>"
        },
        …
    ],
    "policy_overrides":{
        "can_play":<can play>,
        "can persist":<can persist>,
        "can_renew":<can renew>,
        "rental_duration_seconds":<rental duration>,
        "playback_duration_seconds":<playback duration>,
        "license_duration_seconds":<license duration>,
        "renewal_recovery_duration_seconds":<renewal recovery duration>,
        "renewal_server_url":"<renewal server url>",
        "renewal_delay_seconds":<renewal delay>,
        "renewal_retry_interval_seconds":<renewal retry interval>,
        "renew_with_usage":<renew with usage>
    }
}

Примечание

Можно создать пустое сообщение без значений, просто "{}". Затем создается шаблон лицензии со значениями по умолчанию. Значения по умолчанию подходят для большинства случаев. В сценариях доставки лицензий на основе технологий Майкрософт следует всегда использовать значения по умолчанию. Если необходимо задать значения параметров provider (поставщик) и content_id (идентификатор содержимого), то поставщик должен совпадать с учетными данными Widevine.

Сообщение JSON

Имя Значение Описание
payload Строка в кодировке base64 Запрос на лицензию, отправленный клиентом.
content_id Строка в кодировке base64 Идентификатор, используемый для получения идентификатора ключа и ключа содержимого для каждого content_key_specs.track_type.
поставщик строка Используется для поиска ключей и политик содержимого. Если для доставки лицензий Widevine используется доставка ключей Майкрософт, этот параметр пропускается.
policy_name строка Имя ранее зарегистрированной политики. Необязательный элемент.
allowed_track_types enum SD_ONLY или SD_HD. Контролирует, какие ключи содержимого включаются в лицензию.
content_key_specs Массив структур JSON, см. раздел "Спецификации ключей содержимого". Более точный контроль возвращаемых ключей содержимого. Дополнительные сведения см. в разделе "Спецификации ключа содержимого". Можно указать только одно из значений allowed_track_types и content_key_specs.
use_policy_overrides_exclusively Логическое значение: true или false Используйте атрибуты политики, указанные в параметре policy_overrides, и пропустите все сохраненные ранее политики.
policy_overrides Структура JSON, см. раздел "Переопределения политики". Параметры политики для этой лицензии. Если у этого ресурса есть предопределенная политика, будут использоваться указанные значения.
session_init Структура JSON, см. раздел "Инициализация сеанса". Необязательные данные передаются в лицензию.
parse_only Логическое значение: true или false Запрос на лицензию проанализирован, но лицензия не выдана. Но в ответе возвращаются значения из запроса на лицензию.

Спецификации ключей содержимого

Если уже существует заранее определенная политика, вам не нужно указывать какие-либо значения в спецификации ключа содержимого. Существующая политика, связанная с этим содержимым, используется для определения методов защиты выходных данных, таких как "Защита содержимого с высокой пропускной способностью (HDCP)" или "Общая система управления копированием (CGMS)". Если существующая политика не зарегистрирована на сервере лицензирования Widevine, поставщик содержимого может внедрить значения в запрос на лицензию.

Каждое значение content_key_specs должно быть указано для всех записей независимо от параметра use_policy_overrides_exclusively.

Имя Значение Описание
content_key_specs. track_type строка Имя типа записи. Если content_key_specs указан в запросе лицензии, убедитесь, что все типы записей указаны явным образом. Невыполнение этого требования приведет к сбою воспроизведения последних 10 секунд.
content_key_specs
security_level
uint32 Определяет требования к надежности клиента для воспроизведения.
— Требуется программное шифрование методом белого ящика.
— Требуются шифрование ПО и скрытый декодер.
— Материал ключа и операции шифрования должны быть выполнены в резервной доверенной аппаратной среде выполнения.
— Операции шифрования и расшифровки содержимого должны быть выполнены в резервной доверенной аппаратной среде выполнения.
— Шифрование, расшифровка и обработка всех носителей (сжатых и несжатых) должны быть выполнены в резервной доверенной аппаратной среде выполнения.
content_key_specs
required_output_protection.hdc
Строка, одна из: HDCP_NONE, HDCP_V1, HDCP_V2 Указывает, требуется ли HDCP.
content_key_specs
ключ
Base64-
Base64
Ключ содержимого, используемый для этой записи. Если значение указано, нужно указать и параметр track_type или key_id. Поставщик содержимого с помощью этого параметра может вставить ключ содержимого для этой дорожки вместо того, чтобы сервер лицензирования Widevine создал или нашел ключ.
content_key_specs.key_ID Двоичные данные строки в кодировке base64, 16 байт Уникальный идентификатор ключа.

Переопределения политики

Имя Значение Описание
policy_overrides.can_play Логическое значение: true или false Указывает, допускается ли воспроизведение содержимого. Значение по умолчанию — false.
policy_overrides.can_persist Логическое значение: true или false Указывает, что лицензия может быть сохранена в энергонезависимом хранилище для автономного использования. Значение по умолчанию — false.
policy_overrides.can_renew Логическое значение: true или false Указывает, что разрешено продление лицензии. Если указано значение "true", лицензию можно расширить с помощью периодического сигнала. Значение по умолчанию — false.
policy_overrides.license_duration_seconds int64 Указывает интервал времени для данной конкретной лицензии. Значение 0 указывает на неограниченное время. Значение по умолчанию — 0.
policy_overrides.rental_duration_seconds int64 Указывает интервал времени, в течение которого разрешено воспроизведение. Значение 0 указывает на неограниченное время. Значение по умолчанию — 0.
policy_overrides.playback_duration_seconds int64 Окно просмотра времени после начала воспроизведения в течение срока действия лицензии. Значение 0 указывает на неограниченное время. Значение по умолчанию — 0.
policy_overrides.renewal_server_url строка Все запросы на продление для этой лицензии направляются на указанный URL-адрес. Это поле используется, только если can_renew имеет значение true.
policy_overrides.renewal_delay_seconds int64 Число секунд после license_start_time перед первой попыткой продления. Это поле используется, только если can_renew имеет значение true. Значение по умолчанию — 0.
policy_overrides.renewal_retry_interval_seconds int64 Определяет задержку в секундах между последующими запросами на продление лицензии (в случае сбоя). Это поле используется, только если can_renew имеет значение true.
policy_overrides.renewal_recovery_duration_seconds int64 Интервал времени, в течение которого разрешено продолжать воспроизведение при неудачной попытке продления лицензии из-за внутренних проблем с сервером лицензирования. Значение 0 указывает на неограниченное время. Это поле используется, только если can_renew имеет значение true.
policy_overrides.renew_with_usage Логическое значение: true или false Указывает, что лицензия отправлена на продление в начале использования. Это поле используется, только если can_renew имеет значение true.

Инициализация сеанса

Имя Значение Описание
provider_session_token Строка в кодировке base64 Этот маркер сеанса передается обратно в лицензию и существует в рамках последующих операций продления. Маркер сеанса не сохраняется вне сеансов.
provider_client_token Строка в кодировке base64 Маркер клиента для отправки обратно в ответе лицензии. Если запрос лицензии содержит маркер клиента, это значение игнорируется. Маркер клиента сохраняется вне сеансов лицензии.
override_provider_client_token Логическое значение: true или false Если задано значение "false" и запрос лицензии содержит маркер клиента, используйте маркер из запроса, даже если в этой структуре был указан маркер клиента. Если задано значение "true", всегда используйте маркер, заданный в этой структуре.

Дополнительные замечания

  • Widevine — это служба, которая предоставляется компанией Google Inc. и подпадает под условия предоставления услуг и политику конфиденциальности Google Inc.

Справка и поддержка

Вы можете обратиться к Службам мультимедиа с вопросами или следить за нашими обновлениями одним из следующих способов: