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-timestampYES1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 나타냄
    API Gateway 서버와 시간 차가 5분 이상 나는 경우 유효하지 않은 요청으로 간주
    x-ncp-apigw-timestamp:{Timestamp}
    x-ncp-iam-access-keyYES네이버 클라우드 플랫폼 포털에서 발급받은 Access Key ID 값
    x-ncp-iam-access-key:{Sub Account Access Key}
    x-ncp-apigw-signature-v2YESAccess Key ID 값과 Secret Key로 암호화한 서명
    x-ncp-apigw-signature-v2:{API Gateway Signature}
    Content-TypeYESRequest body content type을 application/json으로 지정
    Content-Type: application/json
    x-ncp-region_codeYES리전 코드 (KR)

    요청 바디

    필드명타입필수 여부제약설명
    policyNameStringY
    persistentBooleanY기본값 : false오프라인용 라이선스 저장 여부
    true : 라이선스 유지, false : 재생 후 라이선스 제거(스트리밍)
    rentalDurationIntegerY기본값 : 0
    0-2,147,483,647
    오프라인 렌탈 시나리오 사용 시 설정
    (해당 옵션 사용시 persistent : true 설정 필요)
    다운로드 후 최초 재생 시작 시점까지 라이선스 유효 기간 (단위: 초)
    playbackDurationIntegerY기본값: 0
    0-2,147,483,647
    최초 재생 시작 시점 이후부터의 라이선스 유효 기간 (단위: 초)
    drmPolicyConfigObject[Array]Ydrm type 별 policy 상세 설정
    drmPolicyConfig{}.wideVineObjectNWidevine 의 policy
    drmPolicyConfig{}.wideVine{}.useYnBooleanNWidevine 의 policy 설정 적용 유무
    drmPolicyConfig{}.wideVine{}.securityLevelIntegerN1: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{}.hdcpStringNHDCP_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{}.cgmsStringNCGMS_NONE
    COPY_FREE
    COPY_ONCE
    COPY_NEVER
    아날로그 출력에 대한 보안(CGMS-A) 레벨 설정- 입력값: “CGMS_NONE”, “COPY_FREE”, “COPY_ONCE”, “COPY_NEVER” 중 하나
    drmPolicyConfig{}.wideVine{}.disableAnalogOutputYnBooleanN아날로그 출력 허용 여부 (false: 아날로그 출력 허용)
    drmPolicyConfig{}.wideVine{}.hdcpSrmRuleStringNHDCP_SRM_RULE_NONE
    CURRENT_SRM
    HDCP 기기가 SRM(System Renewability Message)을 처리하지 못하는 경우에 해당 트랙의 재생 여부 설정.
    CURRENT_SRM: 최신 SRM 적용 안되는 기기에서는 해당 트랙 재생 안됨입력값: “HDCP_SRM_RULE_NONE”, “CURRENT_SRM” 중 하나
    drmPolicyConfig{}.wideVine{}.deviceRevocationBooleanNRevoke(Widevine 지원 대상에서 철회)된 안드로이드 기기에 대한 라이선스 발급 허용 여부 (기본값: 발급 허용하지 않음)
    drmConfig{}.playReadyObjectNPlayReady 의 policy
    drmConfig{}.playReady{}.useYnBooleanNPlayReady 의 policy 설정 적용 유무
    drmConfig{}.playReady{}.securityLevelIntegerN150
    2000
    3000
    해당 트랙에 대한 PlayReady security level. (150, 2000, 3000) 하드웨어 DRM 적용 시 3000으로 설정.
    drmConfig{}.playReady{}.digitalVideoProtectionLevelIntegerN100
    250
    270
    300
    301
    디지털 비디오 출력에 대한 보안 레벨 설정 (100, 250, 270, 300, 301)
    drmConfig{}.playReady{}.analogVideoProtectionLevelIntegerN100
    150
    200
    201
    아날로그 비디오 출력에 대한 보안 레벨 설정 (100, 150, 200, 201)
    drmConfig{}.playReady{}.digitalAudioProtectionLevelIntegerN100
    250
    300
    301
    디지털 오디오 출력에 대한 보안 레벨 설정 (100, 250, 300, 301)
    drmConfig{}.playReady{}.hdcpUseYnBooleanNOPL 설정에 따라 HDCP가 적용될 때, Type 1(HDCP V2.2 이상)이 요구되는지 여부를 설정. (true 설정 시 HDCP 2.2 이상 필요)
    drmConfig{}.fairPlayObjectNFairPlay Streaming 의 policy
    drmConfig{}.fairPlay{}.useYnBooleanYFairPlay Streaming 의 policy 설정 적용 유무
    drmConfig{}.fairPlay{}.hdcpEnforcementStringN-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{}.allowAirPlayBooleanNAirPlay 허용 여부
    drmConfig{}.fairPlay{}.allowAvAdaptorBooleanN디지털 AV 어댑터를 통한 출력 허용 여부

    응답

    필드명타입필수 여부제약설명
    policyNameStringY
    policyStatusStringYCREATING
    READY
    DELETED
    UPDATING
    Policy 상태
    policyIdIntegerYdefault Policy : 0생성된 PolicyId
    policyCreatedTimeTimestampNPolicy 생성 시각
    policyUpdateTimeTimestampNPolicy 설정 변경 시각
    persistentBooleanY기본값 : false오프라인용 라이선스 저장 여부
    true : 라이선스 유지, false : 재생 후 라이선스 제거(스트리밍)
    rentalDurationIntegerY기본값 : 0
    0-2,147,483,647
    오프라인 렌탈 시나리오 사용 시 설정
    (해당 옵션 사용시 persistent : true 설정 필요)
    다운로드 후 최초 재생 시작 시점까지 라이선스 유효 기간 (단위: 초)
    playbackDurationIntegerY기본값: 0
    0-2,147,483,647
    최초 재생 시작 시점 이후부터의 라이선스 유효 기간 (단위: 초)
    drmPolicyConfigObject[Array]Ydrm type 별 policy 상세 설정
    drmPolicyConfig{}.wideVineObjectNWidevine 의 policy
    drmPolicyConfig{}.wideVine{}.useYnBooleanNWidevine 의 policy 설정 적용 유무
    drmPolicyConfig{}.wideVine{}.securityLevelIntegerN1: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{}.hdcpStringNHDCP_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{}.cgmsStringNCGMS_NONE
    COPY_FREE
    COPY_ONCE
    COPY_NEVER
    아날로그 출력에 대한 보안(CGMS-A) 레벨 설정- 입력값: “CGMS_NONE”, “COPY_FREE”, “COPY_ONCE”, “COPY_NEVER” 중 하나
    drmPolicyConfig{}.wideVine{}.disableAnalogOutputYnBooleanN아날로그 출력 허용 여부 (false: 아날로그 출력 허용)
    drmPolicyConfig{}.wideVine{}.hdcpSrmRuleStringNHDCP_SRM_RULE_NONE
    CURRENT_SRM
    HDCP 기기가 SRM(System Renewability Message)을 처리하지 못하는 경우에 해당 트랙의 재생 여부 설정.
    CURRENT_SRM: 최신 SRM 적용 안되는 기기에서는 해당 트랙 재생 안됨입력값: “HDCP_SRM_RULE_NONE”, “CURRENT_SRM” 중 하나
    drmPolicyConfig{}.wideVine{}.deviceRevocationBooleanNRevoke(Widevine 지원 대상에서 철회)된 안드로이드 기기에 대한 라이선스 발급 허용 여부 (기본값: 발급 허용하지 않음)
    drmConfig{}.playReadyObjectNPlayReady 의 policy
    drmConfig{}.playReady{}.useYnBooleanNPlayReady 의 policy 설정 적용 유무
    drmConfig{}.playReady{}.securityLevelIntegerN150
    2000
    3000
    해당 트랙에 대한 PlayReady security level
    150, 2000, 3000
    하드웨어 DRM 적용 시 3000으로 설정.
    drmConfig{}.playReady{}.digitalVideoProtectionLevelIntegerN100
    250
    270
    300
    301
    디지털 비디오 출력에 대한 보안 레벨 설정 (100, 250, 270, 300, 301)
    drmConfig{}.playReady{}.analogVideoProtectionLevelIntegerN100
    150
    200
    201
    아날로그 비디오 출력에 대한 보안 레벨 설정 (100, 150, 200, 201)
    drmConfig{}.playReady{}.digitalAudioProtectionLevelIntegerN100
    250
    300
    301
    디지털 오디오 출력에 대한 보안 레벨 설정 (100, 250, 300, 301)
    drmConfig{}.playReady{}.hdcpUseYnBooleanNOPL 설정에 따라 HDCP가 적용될 때, Type 1(HDCP V2.2 이상)이 요구되는지 여부를 설정
    (true 설정 시 HDCP 2.2 이상 필요)
    drmConfig{}.fairPlayObjectNFairPlay Streaming 의 policy
    drmConfig{}.fairPlay{}.useYnBooleanYFairPlay Streaming 의 policy 설정 적용 유무
    drmConfig{}.fairPlay{}.hdcpEnforcementStringN-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{}.allowAirPlayBooleanNAirPlay 허용 여부
    drmConfig{}.fairPlay{}.allowAvAdaptorBooleanN디지털 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
          }
        }
      }
    }
    

    이 문서가 도움이 되었습니까?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.