Omówienie szablonu licencji usługi Media Services w wersji 3 z szablonem licencji Widevine

Usługa Azure Media Services umożliwia szyfrowanie zawartości za pomocą usługi Google Widevine. Usługa Media Services udostępnia również usługę dostarczania licencji Widevine. Aby skonfigurować licencje Widevine, możesz użyć interfejsów API usługi Azure Media Services. Gdy gracz próbuje odtworzyć zawartość chronioną przez widevine, żądanie jest wysyłane do usługi dostarczania licencji w celu uzyskania licencji. Jeśli usługa licencji zatwierdzi żądanie, usługa wystawia licencję. Jest ona wysyłana do klienta i jest używana do odszyfrowywania i odtwarzania określonej zawartości.

Uwaga

Widevine nie jest dostępny w regionie GovCloud.

Żądanie licencji Widevine jest sformatowane jako komunikat 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>
    }
}

Uwaga

Możesz utworzyć pusty komunikat bez wartości, po prostu "{}". Następnie zostanie utworzony szablon licencji z wartościami domyślnymi. Wartość domyślna działa w większości przypadków. Scenariusze dostarczania licencji oparte na firmie Microsoft powinny zawsze używać wartości domyślnych. Jeśli musisz ustawić wartości "provider" i "content_id", dostawca musi być zgodny z poświadczeniami Widevine.

Komunikat JSON

Nazwa Wartość Opis
payload Ciąg zakodowany w formacie Base64 Żądanie licencji wysłane przez klienta.
content_id Ciąg zakodowany w formacie Base64 Identyfikator używany do uzyskiwania identyfikatora klucza i klucza zawartości dla każdego content_key_specs.track_type.
Dostawca ciąg Służy do wyszukiwania kluczy zawartości i zasad. Jeśli do dostarczania licencji Widevine jest używany klucz firmy Microsoft, ten parametr jest ignorowany.
policy_name ciąg Nazwa wcześniej zarejestrowanych zasad. Opcjonalny.
allowed_track_types enum SD_ONLY lub SD_HD. Określa, które klucze zawartości znajdują się w licencji.
content_key_specs Tablica struktur JSON zawiera sekcję "Specyfikacja klucza zawartości". Bardziej szczegółowa kontrolka, na której mają być zwracane klucze zawartości. Aby uzyskać więcej informacji, zobacz sekcję "Specyfikacja klucza zawartości". Można określić tylko jedną z wartości allowed_track_types i content_key_specs.
use_policy_overrides_exclusively Wartość logiczna, prawda lub fałsz Użyj atrybutów zasad określonych przez policy_overrides i pomiń wszystkie wcześniej przechowywane zasady.
policy_overrides Struktura JSON zawiera sekcję "Przesłonięcia zasad". Ustawienia zasad dla tej licencji. W przypadku, gdy ten zasób ma wstępnie zdefiniowane zasady, te określone wartości są używane.
session_init Struktura JSON zawiera sekcję "Inicjowanie sesji". Opcjonalne dane są przekazywane do licencji.
parse_only Wartość logiczna, prawda lub fałsz Żądanie licencji jest analizowane, ale nie wydano żadnej licencji. Jednak wartości z żądania licencji są zwracane w odpowiedzi.

Specyfikacja klucza zawartości

Jeśli istnieją wstępnie istniejące zasady, nie ma potrzeby określania żadnej z wartości w specyfikacji klucza zawartości. Istniejące zasady skojarzone z tą zawartością są używane do określania ochrony danych wyjściowych, takich jak ochrona zawartości cyfrowej o wysokiej przepustowości (HDCP) i system zarządzania ogólnego kopiowania (CGMS). Jeśli istniejące zasady nie są zarejestrowane na serwerze licencji Widevine, dostawca zawartości może wstrzyknąć wartości do żądania licencji.

Każda wartość content_key_specs musi być określona dla wszystkich ścieżek, niezależnie od opcji use_policy_overrides_exclusively.

Nazwa Wartość Opis
content_key_specs. track_type ciąg Nazwa typu śledzenia. Jeśli content_key_specs jest określona w żądaniu licencji, upewnij się, że wszystkie typy śledzenia są jawnie określone. Nie można tego zrobić, powoduje niepowodzenie odtwarzania z powrotem w ciągu ostatnich 10 sekund.
content_key_specs
security_level
uint32 Definiuje wymagania dotyczące niezawodności klienta na potrzeby odtwarzania.
— Wymagana jest kryptografia oparta na oprogramowaniu.
— Wymagana jest kryptografia oprogramowania i zaciemniony dekoder.
— Kluczowe operacje materiałowe i kryptograficzne należy wykonać w środowisku wykonywania zaufanego opartego na sprzęcie.
— Kryptografia i dekodowanie zawartości muszą być wykonywane w zaufanym środowisku wykonywania opartym na sprzęcie.
- Kryptografia, dekodowanie i obsługa nośników (skompresowanych i nieskompresowanych) musi być obsługiwana w zaufanym środowisku wykonywania opartym na sprzęcie.
content_key_specs
required_output_protection.hdc
ciąg, jeden z HDCP_NONE, HDCP_V1, HDCP_V2 Wskazuje, czy usługa HDCP jest wymagana.
content_key_specs
key
Base64-
zakodowany ciąg
Klucz zawartości do użycia na potrzeby tego śledzenia. Jeśli zostanie określony, wymagane jest track_type lub key_id. Dostawca zawartości może użyć tej opcji, aby wstrzyknąć klucz zawartości dla tej ścieżki zamiast zezwalać serwerowi licencji Widevine na generowanie lub wyszukiwanie klucza.
content_key_specs.key_id Ciąg binarny zakodowany w formacie Base64, 16 bajtów Unikatowy identyfikator klucza.

Przesłonięcia zasad

Nazwa Wartość Opis
policy_overrides.can_play Wartość logiczna, prawda lub fałsz Wskazuje, że odtwarzanie zawartości jest dozwolone. Wartość domyślna to false.
policy_overrides.can_persist Wartość logiczna, prawda lub fałsz Wskazuje, że licencja może być utrwalone w magazynie nieulotnym do użytku w trybie offline. Wartość domyślna to false.
policy_overrides.can_renew Wartość logiczna, prawda lub fałsz Wskazuje, że odnowienie tej licencji jest dozwolone. Jeśli to prawda, czas trwania licencji może zostać przedłużony przez puls. Wartość domyślna to false.
policy_overrides.license_duration_seconds int64 Wskazuje przedział czasu dla tej konkretnej licencji. Wartość 0 wskazuje, że nie ma żadnego limitu czasu trwania. Wartość domyślna to 0.
policy_overrides.rental_duration_seconds int64 Wskazuje przedział czasu podczas odtwarzania jest dozwolony. Wartość 0 wskazuje, że nie ma żadnego limitu czasu trwania. Wartość domyślna to 0.
policy_overrides.playback_duration_seconds int64 Okno wyświetlania czasu po rozpoczęciu odtwarzania w czasie trwania licencji. Wartość 0 wskazuje, że nie ma żadnego limitu czasu trwania. Wartość domyślna to 0.
policy_overrides.renewal_server_url ciąg Wszystkie żądania pulsu (odnowienia) dla tej licencji są kierowane do określonego adresu URL. To pole jest używane tylko wtedy, gdy can_renew ma wartość true.
policy_overrides.renewal_delay_seconds int64 Ile sekund po license_start_time przed pierwszym podjęciem próby odnowienia. To pole jest używane tylko wtedy, gdy can_renew ma wartość true. Wartość domyślna to 0.
policy_overrides.renewal_retry_interval_seconds int64 Określa opóźnienie w sekundach między kolejnymi żądaniami odnowienia licencji w przypadku awarii. To pole jest używane tylko wtedy, gdy can_renew ma wartość true.
policy_overrides.renewal_recovery_duration_seconds int64 Przedział czasu, w którym odtwarzanie może być kontynuowane podczas próby odnowienia, ale nie powiodło się z powodu problemów zaplecza z serwerem licencji. Wartość 0 wskazuje, że nie ma żadnego limitu czasu trwania. To pole jest używane tylko wtedy, gdy can_renew ma wartość true.
policy_overrides.renew_with_usage Wartość logiczna, prawda lub fałsz Wskazuje, że licencja jest wysyłana do odnowienia po uruchomieniu użycia. To pole jest używane tylko wtedy, gdy can_renew ma wartość true.

Inicjowanie sesji

Nazwa Wartość Opis
provider_session_token Ciąg zakodowany w formacie Base64 Ten token sesji jest przekazywany z powrotem w licencji i istnieje w kolejnych odnowieniach. Token sesji nie jest utrwalany poza sesjami.
provider_client_token Ciąg zakodowany w formacie Base64 Token klienta do wysłania z powrotem w odpowiedzi licencji. Jeśli żądanie licencji zawiera token klienta, ta wartość jest ignorowana. Token klienta utrzymuje się poza sesjami licencji.
override_provider_client_token Wartość logiczna, prawda lub fałsz Jeśli wartość false i żądanie licencji zawiera token klienta, użyj tokenu z żądania, nawet jeśli token klienta został określony w tej strukturze. Jeśli wartość true, zawsze używaj tokenu określonego w tej strukturze.

Uwagi dodatkowe

  • Widevine jest usługą dostarczaną przez Google Inc. i podlega warunkom świadczenia usług i zasadom ochrony prywatności Google, Inc.

Uzyskiwanie pomocy i obsługi technicznej

Możesz skontaktować się z usługą Media Services z pytaniami lub postępować zgodnie z naszymi aktualizacjami, korzystając z jednej z następujących metod: