Policy 생성
- 인쇄
- PDF
Policy 생성
- 인쇄
- PDF
기사 요약
이 요약이 도움이 되었나요?
의견을 보내 주셔서 감사합니다.
One Click Multi DRM 라이선스 발급에 필요한 Policy 를 생성하는 API 입니다.
참고
- Policy 상세 설정을 통해 DRM 라이선스에 DRM 타입별 재생 및 보안 레벨 정책을 적용할 수 있습니다.
- Policy 상세 설정을 통해 라이선스 유효 기간, Persistent 여부 등 재생과 관련된 정책을 설정할 수 있습니다.
- 해상도 별 트랙이 나누어진 콘텐츠의 경우, playback policy는 모든 트랙에 동일하게 적용됩니다.
- One Click Multi DRM 상품은 현재 싱글키 라이선스만 지원하며, 멀티 트랙별 라이선스 지원은 향후 지원 예정입니다.
- One Click Multi DRM 상품에서 제공 중인 재생 관련 Policy 세부 옵션은 Pallycon Playback policy 상세 옵션 가이드에서 확인하실 수 있습니다.
- One Click Multi DRM 상품에서 제공 중인 보안 관련 Policy 세부 옵션은 Pallycon Security policy 상세 옵션 가이드를 통해 확인하실 수 있습니다.
- One Click Multi DRM 상품에서 제공하는 Policy 세부 설정은 Pallycon DRM 에서 제공하는 옵션을 그대로 지원합니다.
DRM 타입별 상세 지원 단말 보안 레벨은 개별 단말 기기 지원 현황을 확인하시기 바랍니다.
요청
POST https://multi-drm.apigw.ntruss.com/api/v1/policy
요청 헤더
헤더명 | 필수 여부 | 설명 |
---|---|---|
x-ncp-apigw-timestamp | YES | 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 나타냄 API Gateway 서버와 시간 차가 5분 이상 나는 경우 유효하지 않은 요청으로 간주 x-ncp-apigw-timestamp:{Timestamp} |
x-ncp-iam-access-key | YES | 네이버 클라우드 플랫폼 포털에서 발급받은 Access Key ID 값x-ncp-iam-access-key:{Sub Account Access Key} |
x-ncp-apigw-signature-v2 | YES | Access Key ID 값과 Secret Key로 암호화한 서명x-ncp-apigw-signature-v2:{API Gateway Signature} |
Content-Type | YES | Request body content type을 application/json으로 지정Content-Type: application/json |
x-ncp-region_code | YES | 리전 코드 (KR) |
요청 바디
필드명 | 타입 | 필수 여부 | 제약 | 설명 |
---|---|---|---|---|
policyName | String | Y | ||
persistent | Boolean | Y | 기본값 : false | 오프라인용 라이선스 저장 여부 true : 라이선스 유지, false : 재생 후 라이선스 제거(스트리밍) |
rentalDuration | Integer | Y | 기본값 : 0 0-2,147,483,647 | 오프라인 렌탈 시나리오 사용 시 설정 (해당 옵션 사용시 persistent : true 설정 필요) 다운로드 후 최초 재생 시작 시점까지 라이선스 유효 기간 (단위: 초) |
playbackDuration | Integer | Y | 기본값: 0 0-2,147,483,647 | 최초 재생 시작 시점 이후부터의 라이선스 유효 기간 (단위: 초) |
drmPolicyConfig | Object[Array] | Y | drm type 별 policy 상세 설정 | |
drmPolicyConfig{}.wideVine | Object | N | Widevine 의 policy | |
drmPolicyConfig{}.wideVine{}.useYn | Boolean | N | Widevine 의 policy 설정 적용 유무 | |
drmPolicyConfig{}.wideVine{}.securityLevel | Integer | N | 1:SW_SECURE_CRYPTO 2:SW_SECURE_DECODE 3:HW_SECURE_CRYPTO 4:HW_SEURE_DECODE 5:HW_SECURE_ALL | 해당 트랙에 대한 Widevine security level 설정 1:SW_SECURE_CRYPTO 2:SW_SECURE_DECODE 3:HW_SECURE_CRYPTO 4:HW_SECURE_DECODE 5:HW_SECURE_ALL - 5로 설정하면 Widevine L1 기기에서만 재생 가능 |
drmPolicyConfig{}.wideVine{}.hdcp | String | N | HDCP_NONE HDCP_V1 HDCP_V2 HDCP_V2_1 HDCP_V2_2 HDCP_NO_DIGITAL_OUTPUT | 디지털 출력에 대한 보안(HDCP) 레벨 설정 입력값: “HDCP_NONE”, “HDCP_V1”, “HDCP_V2”, “HDCP_V2_1”, “HDCP_V2_2”, “HDCP_NO_DIGITAL_OUTPUT” 중 하나 |
drmPolicyConfig{}.wideVine{}.cgms | String | N | CGMS_NONE COPY_FREE COPY_ONCE COPY_NEVER | 아날로그 출력에 대한 보안(CGMS-A) 레벨 설정- 입력값: “CGMS_NONE”, “COPY_FREE”, “COPY_ONCE”, “COPY_NEVER” 중 하나 |
drmPolicyConfig{}.wideVine{}.disableAnalogOutputYn | Boolean | N | 아날로그 출력 허용 여부 (false: 아날로그 출력 허용) | |
drmPolicyConfig{}.wideVine{}.hdcpSrmRule | String | N | HDCP_SRM_RULE_NONE CURRENT_SRM | HDCP 기기가 SRM(System Renewability Message)을 처리하지 못하는 경우에 해당 트랙의 재생 여부 설정. CURRENT_SRM: 최신 SRM 적용 안되는 기기에서는 해당 트랙 재생 안됨입력값: “HDCP_SRM_RULE_NONE”, “CURRENT_SRM” 중 하나 |
drmPolicyConfig{}.wideVine{}.deviceRevocation | Boolean | N | Revoke(Widevine 지원 대상에서 철회)된 안드로이드 기기에 대한 라이선스 발급 허용 여부 (기본값: 발급 허용하지 않음) | |
drmConfig{}.playReady | Object | N | PlayReady 의 policy | |
drmConfig{}.playReady{}.useYn | Boolean | N | PlayReady 의 policy 설정 적용 유무 | |
drmConfig{}.playReady{}.securityLevel | Integer | N | 150 2000 3000 | 해당 트랙에 대한 PlayReady security level. (150, 2000, 3000) 하드웨어 DRM 적용 시 3000으로 설정. |
drmConfig{}.playReady{}.digitalVideoProtectionLevel | Integer | N | 100 250 270 300 301 | 디지털 비디오 출력에 대한 보안 레벨 설정 (100, 250, 270, 300, 301) |
drmConfig{}.playReady{}.analogVideoProtectionLevel | Integer | N | 100 150 200 201 | 아날로그 비디오 출력에 대한 보안 레벨 설정 (100, 150, 200, 201) |
drmConfig{}.playReady{}.digitalAudioProtectionLevel | Integer | N | 100 250 300 301 | 디지털 오디오 출력에 대한 보안 레벨 설정 (100, 250, 300, 301) |
drmConfig{}.playReady{}.hdcpUseYn | Boolean | N | OPL 설정에 따라 HDCP가 적용될 때, Type 1(HDCP V2.2 이상)이 요구되는지 여부를 설정. (true 설정 시 HDCP 2.2 이상 필요) | |
drmConfig{}.fairPlay | Object | N | FairPlay Streaming 의 policy | |
drmConfig{}.fairPlay{}.useYn | Boolean | Y | FairPlay Streaming 의 policy 설정 적용 유무 | |
drmConfig{}.fairPlay{}.hdcpEnforcement | String | N | -1 (HDCP 미적용) 0 (HDCP Type 0(버전 무관)) 1 (HDCP Type 1(2.2 이상 필요)) | 해당 트랙에 대한 HDCP 적용 여부 및 HDCP 버전 -1: HDCP 미적용 0: HDCP Type 0(버전 무관) 1: HDCP Type 1(2.2 이상 필요) |
drmConfig{}.fairPlay{}.allowAirPlay | Boolean | N | AirPlay 허용 여부 | |
drmConfig{}.fairPlay{}.allowAvAdaptor | Boolean | N | 디지털 AV 어댑터를 통한 출력 허용 여부 |
응답
필드명 | 타입 | 필수 여부 | 제약 | 설명 |
---|---|---|---|---|
policyName | String | Y | ||
policyStatus | String | Y | CREATING READY DELETED UPDATING | Policy 상태 |
policyId | Integer | Y | default Policy : 0 | 생성된 PolicyId |
policyCreatedTime | Timestamp | N | Policy 생성 시각 | |
policyUpdateTime | Timestamp | N | Policy 설정 변경 시각 | |
persistent | Boolean | Y | 기본값 : false | 오프라인용 라이선스 저장 여부 true : 라이선스 유지, false : 재생 후 라이선스 제거(스트리밍) |
rentalDuration | Integer | Y | 기본값 : 0 0-2,147,483,647 | 오프라인 렌탈 시나리오 사용 시 설정 (해당 옵션 사용시 persistent : true 설정 필요) 다운로드 후 최초 재생 시작 시점까지 라이선스 유효 기간 (단위: 초) |
playbackDuration | Integer | Y | 기본값: 0 0-2,147,483,647 | 최초 재생 시작 시점 이후부터의 라이선스 유효 기간 (단위: 초) |
drmPolicyConfig | Object[Array] | Y | drm type 별 policy 상세 설정 | |
drmPolicyConfig{}.wideVine | Object | N | Widevine 의 policy | |
drmPolicyConfig{}.wideVine{}.useYn | Boolean | N | Widevine 의 policy 설정 적용 유무 | |
drmPolicyConfig{}.wideVine{}.securityLevel | Integer | N | 1:SW_SECURE_CRYPTO 2:SW_SECURE_DECODE 3:HW_SECURE_CRYPTO 4:HW_SECURE_DECODE 5:HW_SECURE_ALL | 해당 트랙에 대한 Widevine security level 설정 1:SW_SECURE_CRYPTO 2:SW_SECURE_DECODE 3:HW_SECURE_CRYPTO 4:HW_SECURE_DECODE 5:HW_SECURE_ALL - 5로 설정하면 Widevine L1 기기에서만 재생 가능 |
drmPolicyConfig{}.wideVine{}.hdcp | String | N | HDCP_NONE HDCP_V1 HDCP_V2 HDCP_V2_1 HDCP_V2_2 HDCP_NO_DIGITAL_OUTPUT | 디지털 출력에 대한 보안(HDCP) 레벨 설정 입력값: “HDCP_NONE”, “HDCP_V1”, “HDCP_V2”, “HDCP_V2_1”, “HDCP_V2_2”, “HDCP_NO_DIGITAL_OUTPUT” 중 하나 |
drmPolicyConfig{}.wideVine{}.cgms | String | N | CGMS_NONE COPY_FREE COPY_ONCE COPY_NEVER | 아날로그 출력에 대한 보안(CGMS-A) 레벨 설정- 입력값: “CGMS_NONE”, “COPY_FREE”, “COPY_ONCE”, “COPY_NEVER” 중 하나 |
drmPolicyConfig{}.wideVine{}.disableAnalogOutputYn | Boolean | N | 아날로그 출력 허용 여부 (false: 아날로그 출력 허용) | |
drmPolicyConfig{}.wideVine{}.hdcpSrmRule | String | N | HDCP_SRM_RULE_NONE CURRENT_SRM | HDCP 기기가 SRM(System Renewability Message)을 처리하지 못하는 경우에 해당 트랙의 재생 여부 설정. CURRENT_SRM: 최신 SRM 적용 안되는 기기에서는 해당 트랙 재생 안됨입력값: “HDCP_SRM_RULE_NONE”, “CURRENT_SRM” 중 하나 |
drmPolicyConfig{}.wideVine{}.deviceRevocation | Boolean | N | Revoke(Widevine 지원 대상에서 철회)된 안드로이드 기기에 대한 라이선스 발급 허용 여부 (기본값: 발급 허용하지 않음) | |
drmConfig{}.playReady | Object | N | PlayReady 의 policy | |
drmConfig{}.playReady{}.useYn | Boolean | N | PlayReady 의 policy 설정 적용 유무 | |
drmConfig{}.playReady{}.securityLevel | Integer | N | 150 2000 3000 | 해당 트랙에 대한 PlayReady security level 150, 2000, 3000 하드웨어 DRM 적용 시 3000으로 설정. |
drmConfig{}.playReady{}.digitalVideoProtectionLevel | Integer | N | 100 250 270 300 301 | 디지털 비디오 출력에 대한 보안 레벨 설정 (100, 250, 270, 300, 301) |
drmConfig{}.playReady{}.analogVideoProtectionLevel | Integer | N | 100 150 200 201 | 아날로그 비디오 출력에 대한 보안 레벨 설정 (100, 150, 200, 201) |
drmConfig{}.playReady{}.digitalAudioProtectionLevel | Integer | N | 100 250 300 301 | 디지털 오디오 출력에 대한 보안 레벨 설정 (100, 250, 300, 301) |
drmConfig{}.playReady{}.hdcpUseYn | Boolean | N | OPL 설정에 따라 HDCP가 적용될 때, Type 1(HDCP V2.2 이상)이 요구되는지 여부를 설정 (true 설정 시 HDCP 2.2 이상 필요) | |
drmConfig{}.fairPlay | Object | N | FairPlay Streaming 의 policy | |
drmConfig{}.fairPlay{}.useYn | Boolean | Y | FairPlay Streaming 의 policy 설정 적용 유무 | |
drmConfig{}.fairPlay{}.hdcpEnforcement | String | N | -1 (HDCP 미적용) 0 (HDCP Type 0(버전 무관)) 1 (HDCP Type 1(2.2 이상 필요)) | 해당 트랙에 대한 HDCP 적용 여부 및 HDCP 버전 -1: HDCP 미적용 0: HDCP Type 0(버전 무관) 1: HDCP Type 1(2.2 이상 필요) |
drmConfig{}.fairPlay{}.allowAirPlay | Boolean | N | AirPlay 허용 여부 | |
drmConfig{}.fairPlay{}.allowAvAdaptor | Boolean | N | 디지털 AV 어댑터를 통한 출력 허용 여부 |
예시
요청 예시
POST /api/v1/policy
HOST: multi-drm.apigw.ntruss.com
Content-Type: application/json
x-ncp-apigw-timestamp:1521787414578
x-ncp-iam-access-key:6uxz1nKkcYwUjWRG5Q1V7NsW0i5jErlu2NjBXXgy
x-ncp-apigw-signature-v2:iJFK773KH0WwQ79PasqJ+ZGixtpDQ/abS57WGQdld2M=
x-ncp-region_code:KR
# case 1. set all drmType
{
"drmPolicyConfig": {
"fairplay": {
"allowAirPlay": true,
"allowAvAdaptor": true,
"hdcpEnforcement": "-1",
"useYn": true
},
"playready": {
"analogVideoProtectionLevel": "100",
"digitalAudioProtectionLevel": "100",
"digitalVideoProtectionLevel": "100",
"hdcpUseYn": true,
"securityLevel": "150",
"useYn": true
},
"widevine": {
"cgms": "CGMS_NONE",
"deviceRevocation": true,
"disableAnalogOutputYn": true,
"hdcp": "HDCP_NONE",
"hdcpSrmRule": "HDCP_SRM_RULE_NONE",
"securityLevel": "1",
"useYn": true
}
},
"persistent": true,
"playbackDuration": 0,
"policyName": "mySamplePolicy",
"rentalDuration": 0
}
POST /api/v1/policy
HOST: multi-drm.apigw.ntruss.com
Content-Type: application/json
x-ncp-apigw-timestamp:1521787414578
x-ncp-iam-access-key:6uxz1nKkcYwUjWRG5Q1V7NsW0i5jErlu2NjBXXgy
x-ncp-apigw-signature-v2:iJFK773KH0WwQ79PasqJ+ZGixtpDQ/abS57WGQdld2M=
x-ncp-region_code:KR
# case 2. set drm policy without fairPlay
{
"drmPolicyConfig": {
"fairplay": {
"useYn": false
},
"playready": {
"analogVideoProtectionLevel": "100",
"digitalAudioProtectionLevel": "100",
"digitalVideoProtectionLevel": "100",
"hdcpUseYn": true,
"securityLevel": "150",
"useYn": true
},
"widevine": {
"cgms": "CGMS_NONE",
"deviceRevocation": true,
"disableAnalogOutputYn": true,
"hdcp": "HDCP_NONE",
"hdcpSrmRule": "HDCP_SRM_RULE_NONE",
"securityLevel": "1",
"useYn": true
}
},
"persistent": true,
"playbackDuration": 0,
"policyName": "mySamplePolicy",
"rentalDuration": 0
}
응답 예시
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 20 Nov 2023 19:53:32 GMT
Content-Type: application/json;charset=utf-8
Connection: keep-alive
Access-Control-Allow-Origin: *
x-ncp-trace-id: 36c9k60om4p3238cpmc9gm4cj4
### case 1.
{
"success": true,
"content": {
"policyId": 122,
"policyName": "mySamplePolicy",
"policyStatus": "CREATED",
"policyCreatedTime": 1700479924517,
"policyUpdateTime": 1700479924526,
"persistent": true,
"rentalDuration": 0,
"playbackDuration": 0,
"drmPolicyConfig": {
"wideVine": {
"useYn": true,
"securityLevel": 1,
"hdcp": "HDCP_NONE",
"cgms": "CGMS_NONE",
"disableAnalogOutputYn": true,
"hdcpSrmRule": "HDCP_SRM_RULE_NONE",
"deviceRevocation": true
},
"playReady": {
"useYn": true,
"securityLevel": 150,
"digitalVideoProtectionLevel": 100,
"analogVideoProtectionLevel": 100,
"digitalAudioProtectionLevel": 100,
"hdcpUseYn": true
},
"fairPlay": {
"useYn": true,
"hdcpEnforcement": -1,
"allowAirPlay": true,
"allowAvAdaptor": true
}
}
}
}
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 20 Nov 2023 19:53:32 GMT
Content-Type: application/json;charset=utf-8
Connection: keep-alive
Access-Control-Allow-Origin: *
x-ncp-trace-id: 36c9k60om4p3238cpmc9gm4cj4
### case 2.
{
"success": true,
"content": {
"policyId": 123,
"policyName": "mySamplePolicy",
"policyStatus": "CREATED",
"policyCreatedTime": 1700480181622,
"policyUpdateTime": 1700480181634,
"persistent": true,
"rentalDuration": 0,
"playbackDuration": 0,
"drmPolicyConfig": {
"wideVine": {
"useYn": true,
"securityLevel": 1,
"hdcp": "HDCP_NONE",
"cgms": "CGMS_NONE",
"disableAnalogOutputYn": true,
"hdcpSrmRule": "HDCP_SRM_RULE_NONE",
"deviceRevocation": true
},
"playReady": {
"useYn": true,
"securityLevel": 150,
"digitalVideoProtectionLevel": 100,
"analogVideoProtectionLevel": 100,
"digitalAudioProtectionLevel": 100,
"hdcpUseYn": true
},
"fairPlay": {
"useYn": false
}
}
}
}
이 문서가 도움이 되었습니까?