Widevine 라이선스 템플릿을 사용하는 Media Services v3 개요
Azure Media Services를 사용하면 Google Widevine을 사용하여 콘텐츠를 암호화할 수 있습니다. 또한 Media Services는 Widevine 라이선스를 제공하는 서비스를 제공합니다. Azure Media Services API를 사용하여 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>
}
}
참고
값이 없는 빈 메시지(‘{}’)를 만들 수 있습니다. 그런 다음 기본값으로 라이선스 템플릿을 만듭니다. 기본값은 대부분의 경우 적합합니다. Microsoft 기반 라이선스 배달 시나리오는 항상 기본값을 사용해야 합니다. “provider“ 및 “content_id“ 값을 설정해야 하는 경우 공급자가 Widevine 자격 증명과 일치해야 합니다.
JSON 메시지
이름 | 값 | Description |
---|---|---|
payload | Base64로 인코드된 문자열 | 클라이언트에서 보낸 라이선스 요청입니다. |
content_id | Base64로 인코드된 문자열 | 각 content_key_specs.track_type의 키 ID와 콘텐츠 키를 파생하는 데 사용되는 식별자입니다. |
provider | 문자열 | 콘텐츠 키 및 정책을 조회하는 데 사용합니다. Widevine 라이선스 배달에 Microsoft 키 배달을 사용하는 경우 이 매개 변수는 무시됩니다. |
policy_name | 문자열 | 이전에 등록된 정책의 이름입니다. 선택 사항입니다. |
allowed_track_types | enum | SD_ONLY 또는 SD_HD. 라이선스에 포함되는 콘텐츠 키를 제어합니다. |
content_key_specs | JSON 구조 배열(“콘텐츠 키 사양” 섹션 참조). | 반환할 콘텐츠 키에 대한 보다 세분화된 제어. 자세한 내용은 ‘콘텐츠 키 사양’ 섹션을 참조하세요. allowed_track_types 및 content_key_specs 값 중 하나만 지정할 수 있습니다. |
use_policy_overrides_exclusively | Boolean, true 또는 false | policy_overrides로 지정된 정책 특성을 사용하고 이전에 저장된 모든 정책은 생략합니다. |
policy_overrides | JSON 구조(“정책 재정의” 섹션 참조). | 이 라이선스에 대한 정책 설정입니다. 이 자산에 미리 정의된 정책이 있는 경우 이러한 지정된 값이 사용됩니다. |
session_init | JSON 구조(“세션 초기화” 섹션 참조). | 선택적 데이터가 라이선스에 전달됩니다. |
parse_only | Boolean, true 또는 false | 라이선스 요청이 구문 분석되지만 라이선스는 발급되지 않습니다. 그러나 라이선스 요청의 값이 응답에 반환됩니다. |
콘텐츠 키 사양
기존 정책이 있으면 콘텐츠 키 사양에 값을 지정할 필요가 없습니다. 이 콘텐츠와 연관된 기존 정책은 HDCP(High-bandwidth Digital Content Protection), CGMS(Copy General Management System) 등의 출력 보호를 확인하는 데 사용됩니다. 기존 정책이 Widevine 라이선스 서버에 등록되지 않은 경우, 콘텐츠 공급자가 라이선스 요청에 값을 삽입할 수 있습니다.
use_policy_overrides_exclusively 옵션에 관계없이 모든 트랙에 대해 각 content_key_specs 값을 지정해야 합니다.
이름 | 값 | Description |
---|---|---|
content_key_specs. track_type | 문자열 | 트랙 유형 이름입니다. 라이선스 요청에 Content_key_specs를 지정한 경우 모든 트랙 유형을 명시적으로 지정해야 합니다. 이렇게 하지 않으면 이전 10초 재생에 실패합니다. |
content_key_specs security_level |
uint32 | 재생에 대한 클라이언트 견고성 요구 사항을 정의합니다. - 소프트웨어 기반 화이트 박스 암호화가 필요합니다. - 소프트웨어 암호화 및 난독 처리된 디코더가 필요합니다. - 하드웨어 기반의 신뢰할 수 있는 실행 환경에서 키 자료 및 암호화 작업을 수행해야 합니다. - 하드웨어 기반의 신뢰할 수 있는 실행 환경에서 콘텐츠의 암호화 및 디코딩을 수행해야 합니다. - 하드웨어 기반의 신뢰할 수 있는 실행 환경에서 미디어의 암호화, 디코딩 및 모든 처리(압축 및 압축 해제)를 수행해야 합니다. |
content_key_specs required_output_protection.hdc |
string, HDCP_NONE, HDCP_V1, HDCP_V2 중 하나 | HDCP가 필요한지 여부를 나타냅니다. |
content_key_specs key |
Base64로 인코딩된 문자열 |
트랙에 사용할 콘텐츠 키입니다. 지정하는 경우 track_type 또는 key_id가 필요합니다. 콘텐츠 공급자는 Widevine 라이선스 서버에서 키를 생성하거나 조회하도록 하지 않고 이 옵션을 사용하여 이 트랙에 대한 콘텐츠 키를 삽입할 수 있습니다. |
content_key_specs.key_id | Base64로 인코드된 문자열 이진, 16바이트 | 키의 고유 식별자. |
정책 재정의
이름 | 값 | 설명 |
---|---|---|
policy_overrides.can_play | Boolean, true 또는 false | 콘텐츠의 재생이 허용됨을 나타냅니다. 기본값은 false입니다. |
policy_overrides.can_persist | Boolean, true 또는 false | 라이선스를 오프라인 용도로 비휘발성 스토리지에 저장할 수 있음을 나타냅니다. 기본값은 false입니다. |
policy_overrides.can_renew | Boolean, 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 | Boolean, true 또는 false | 사용이 시작될 때 갱신을 위해 라이선스가 전송됨을 나타냅니다. 이 필드는 can_renew가 true인 경우에만 사용됩니다. |
세션 초기화
이름 | 값 | Description |
---|---|---|
provider_session_token | Base64로 인코드된 문자열 | 이 세션 토큰은 라이선스에 다시 전달되고 후속 갱신에 존재합니다. 세션 토큰은 세션 후에 지속되지 않습니다. |
provider_client_token | Base64로 인코드된 문자열 | 라이선스 응답으로 다시 보낼 클라이언트 토큰입니다. 클라이언트 요청에 클라이언트 토큰이 포함된 경우 이 값은 무시됩니다. 클라이언트 토큰은 라이선스 세션 후에도 지속됩니다. |
override_provider_client_token | Boolean, true 또는 false | false이고 라이선스 요청에 클라이언트 토큰이 포함된 경우 이 구조에 클라이언트 토큰이 지정된 경우에도 요청의 토큰을 사용합니다. true이면 항상 이 구조에 지정된 토큰을 사용합니다. |
추가적인 참고 사항
- Widevine은 Google Inc.에서 제공하는 서비스로, Google Inc.의 서비스 약관 및 개인정보처리방침을 따릅니다.
도움말 및 지원 보기
다음 방법 중 하나로 Media Services에 질문하거나 업데이트를 따를 수 있습니다.
- 질문과 대답
-
Stack Overflow. 를 사용하여 질문에 태그를 지정
azure-media-services
합니다. - @MSFTAzureMedia 또는 @AzureSupport 사용하여 지원을 요청합니다.
- Azure Portal 통해 지원 티켓을 엽니다.