---
title: "콘텐츠 인증"
slug: "vpe-example-auth"
updated: 2026-05-21T09:01:51Z
published: 2026-05-21T09:03:18Z
canonical: "guide-gov.ncloud-docs.com/vpe-example-auth"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://guide-gov.ncloud-docs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 콘텐츠 인증

Classic/VPC 환경에서 이용 가능합니다.

콘텐츠 인증에서는 스크립트 코드를 수정하여 재생 소스에 Secure Token을 적용하는 방법과 MultiDRM을 설정하는 방법을 설명합니다.

## Secure Token

`token` 속성으로 재생 소스에 Secure Token을 적용하여 OneTimeUrl을 지원할 수 있습니다. 또한, `player.tokenChange` 속성으로 동영상 재생 중 중단 없이 Secure Token을 교체할 수 있습니다.

          참고

          

Secure Token에 관한 자세한 내용은 [CDN+ 사용 가이드](/docs/networking-networking-8-1#Viewer%EC%A0%84%EC%86%A1%EC%84%A4%EC%A0%95)를 참조해 주십시오.

예제는 다음과 같습니다.

```
// 동영상(MP4)
new ncplayer('video1', {
  autostart: true,
  playlist: [
    {
      file: 'https://CDN도메인/example_video_01.mp4',
    },
  ],
  token: 'token=st=1675320871~exp=1675320901~acl=....', // Secure Token
});

// 토큰 교체
player.tokenChange('token=st=1675320871~exp=1675320901~acl=....') // 재생 중 신규 토큰으로 교체
```

## MultiDRM

`playlist.drm` 속성으로 MultiDRM을 설정할 수 있습니다. 예제는 다음과 같습니다.

```
let player;

document.addEventListener('DOMContentLoaded',  async ()=> {
    await ncplayerDRM('video1',{
        playlist: [
            {
                drm:{
                    'com.apple.fps':{
                        certificateUrl: '{Certificate URL}',
                        licenseUri : 'https://license-global.pallycon.com/ri/licenseManager.do',
                        licenseRequestHeader:{
                            'Content-type': 'application/x-www-form-urlencoded',
                            'pallycon-customdata-v2':'{FairPlay용 Token}'
                        },
                        src : '{hls url}'
                    },
                    'com.widevine.alpha':{
                        licenseUri : 'https://license-global.pallycon.com/ri/licenseManager.do',
                        licenseRequestHeader:{
                            'pallycon-customdata-v2':'{Widevine용 Token}'
                        },
                        src : '{dash url}'
                    },
                    'com.microsoft.playready':{
                        licenseUri : 'https://license-global.pallycon.com/ri/licenseManager.do',
                        licenseRequestHeader:{
                            'pallycon-customdata-v2':'{PlayReady용 Token}'
                        },
                        src : '{dash url}'
                    },
                },
                poster: 'https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202207/ae73f3a32b49205fafdc3303c7f0c0b8.png',
                description: {
                    title: "네이버클라우드",
                    create_at: "2022-12-31",
                    profile_name: "Naver Cloud Platform",
                    profile_image: "https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202207/ae73f3a32b49205fafdc3303c7f0c0b8.png
                },
            }
        ],
        controlBtn: {
            play: true,
            fullscreen: true,
            volume: true,
            times: true,
            pictureInPicture: true,
            setting: true,
            subtitle: true
        },
        autostart: false
    });
});
```

          참고

          

- MultiDRM을 사용하려면 HLS, DASH 두 가지를 모두 지원하도록 VOD Station 서비스에서 두 개의 채널로 구성해야 합니다.
- MultiDRM은 SSL/TSL이 적용된 https 환경에서만 작동합니다.
- MultiDRM은 Widevine, PlayReady, FairPlay(FPS)를 지원합니다.
- Video Player Enhancement 서비스는 DoveRunner(구 PallyCon) MultiDRM을 공식 지원합니다.
- DRM 기능을 사용하려면 사전에 외부 DRM 공급사와 계약해야 합니다.
  - DRM 유형
    - Widevine: Google에서 제공하는 DRM 기술 규격으로, Common Encryption 규격에 따라 AES-128 방식으로 암호화합니다.
    - PlayReady: Microsoft에서 제공하는 DRM 기술 규격으로, Common Encryption 규격에 따라 AES-128 방식으로 암호화합니다.
    - FairPlay: Apple에서 제공하는 DRM 기술 규격으로, 각각의 HLS 세그먼트를 Sample-AES 방식으로 암호화합니다.
  - 지원 현황

| 브라우저 | Widevine | PlayReady | FairPlay |
| --- | --- | --- | --- |
| Internet Explorer 11+ on Windows 8.1+) | X | O (MPEG-DASH) | X |
| Microsoft Edge (Windows 10+) | X | O (MPEG-DASH) | X |
| Chrome (35+ on Windows 7.0+, 57+ on Android 4.4+) | O (MPEG-DASH) | X | X |
| Firefox (47+ on Windows 7.0+) | O MPEG=DASH | X | X |
| Safari (8+ on Mac OS 10.10+, 11.2+ on iOS 11.2+) | X | X | O (HLS) |
- Video Player Enhancement 서비스는 사용 중인 브라우저가 지원하는 DRM에 따라 상황에 맞는 재생 소스(HLS 또는 DASH)를 자동으로 선택합니다.

### One Click Multi DRM

Video Player Enhancement 서비스와 One Click Multi DRM 서비스를 연동하여 DRM을 적용할 수 있습니다. FPS Certificate 및 라이선스 발급을 요청하기 위한 Endpoint(엔드포인트) 및 요청 헤더를 확인해 주십시오.

- [FPS Certificate 요청(Apple FairPlay 전용)](/docs/vpe-example-auth#FPSCertificate%EC%9A%94%EC%B2%ADAppleFairPlay%EC%A0%84%EC%9A%A9)
- [라이선스 발급 요청(FairPlay, Widevine, PlayReady 공용)](/docs/vpe-example-auth#%EB%9D%BC%EC%9D%B4%EC%84%A0%EC%8A%A4%EB%B0%9C%EA%B8%89%EC%9A%94%EC%B2%ADFairPlayWidevinePlayReady%EA%B3%B5%EC%9A%A9)

          참고

          

- One Click Multi DRM 서비스와의 연동은 Video Player Enhancement 버전 1.1.1 이상부터 가능합니다.
- Apple FairPlay의 경우 FPS Certificate와 라이선스의 시그니처(X-NCP-APIGW-SIGNATURE-V2)를 각각 생성해야 합니다. 시그니처 생성에 관한 자세한 내용은 [시그니처 생성 가이드](https://api.ncloud-docs.com/docs/common-ncpapi#%EC%8B%9C%EA%B7%B8%EB%8B%88%EC%B2%98%EC%83%9D%EC%84%B1)를 참고해 주십시오.

#### FPS Certificate 요청(Apple FairPlay 전용)

FPS Certificate를 요청하기 위한 엔드포인트 및 요청 헤더는 다음과 같습니다.

- Endpoint

```
GET https://multi-drm.apigw.ntruss.com/api/v1/license/fairplay
```
- 요청 헤더

| 항목 | 필수 여부 | 설명 |
| --- | --- | --- |
| X-NCP-REGION_CODE | O | 이용 중인 서비스 리전 코드 - 한국: KR - 싱가포르: SGN - 미국: USWN - 일본: JPN - 홍콩: HK - 독일: DEN |
| X-NCP-IAM-ACCESS-KEY | O | 포털 또는 Sub Account에서 발급받은 Access Key ID |
| X-NCP-APIGW-TIMESTAMP | O | 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 나타내며, API Gateway 서버와 시간 차가 5분 이상 나는 경우에는 유효하지 않은 요청으로 간주 |
| X-NCP-APIGW-SIGNATURE-V2 | O | Access Key ID 값과 Secret Key로 암호화한 서명으로, HMAC 암호화 알고리즘은 HmacSHA256 사용 |

#### 라이선스 발급 요청(FairPlay, Widevine, PlayReady 공용)

라이선스 발급을 요청하기 위한 엔드포인트 및 요청 헤더는 다음과 같습니다.

- Endpoint

```
POST https://multi-drm.apigw.ntruss.com/api/v1/license
```
- 요청 헤더

| 항목 | 필수 여부 | 설명 |
| --- | --- | --- |
| X-DRM-TOKEN | O | One Click Multi DRM 라이선스 발급에 필수 데이터가 포함된 암호화된 토큰값 |
| X-NCP-REGION_CODE | O | 이용 중인 서비스 리전 코드 - 한국: KR - 싱가포르: SGN - 미국: USWN - 일본: JPN - 홍콩: HK - 독일: DEN |
| X-NCP-IAM-ACCESS-KEY | O | 포털 또는 Sub Account에서 발급받은 Access Key ID |
| X-NCP-APIGW-TIMESTAMP | O | 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 나타내며, API Gateway 서버와 시간 차가 5분 이상 나는 경우에는 유효하지 않은 요청으로 간주 |
| X-NCP-APIGW-SIGNATURE-V2 | O | Access Key ID 값과 Secret Key로 암호화한 서명으로, HMAC 암호화 알고리즘은 HmacSHA256 사용 |

#### 예제

One Click Multi DRM 적용을 위한 Apple FairPlay 및 Widevine/PlayReady 예제는 다음과 같습니다.

- Apple FairPlay

```
document.addEventListener('DOMContentLoaded',  async ()=> {
    await ncplayerDRM('myElement',{
        playlist: [
            {
                drm:{
                    'com.apple.fps':{
                        certificateUri: '{FPS Certificate Endpoint}',
                        certificateRequestHeader:{
                            'X-NCP-REGION_CODE': 'KR',
                            'X-NCP-IAM-ACCESS-KEY': accessKey,
                            'X-NCP-APIGW-TIMESTAMP': timestamp,
                            'X-NCP-APIGW-SIGNATURE-V2': signature,		 
                        },
                        licenseUri : '{License Endpoint}',
                        licenseRequestHeader:{
                            'X-DRM-TOKEN': '{One Click Multi DRM FPS TOKEN}',
                            'X-NCP-REGION_CODE': 'KR',
                            'X-NCP-IAM-ACCESS-KEY': accessKey,
                            'X-NCP-APIGW-TIMESTAMP': timestamp2,
                            'X-NCP-APIGW-SIGNATURE-V2': signature2,		 
                        },
                        src : 'http://example.com/index.m3u8'
                    }
                },
                poster: 'http://example.com/myVideoThumb.png',
            }
        ],
        autostart: true
    });
});
```
- Widevine/PlayReady

```
document.addEventListener('DOMContentLoaded',  async ()=> {
    await ncplayerDRM('myElement',{
        playlist: [
            {
                drm:{
                    'com.widevine.alpha':{
                        licenseUri : '{License Endpoint}',
                        licenseRequestHeader:{
                            'X-DRM-TOKEN': '{One Click Multi DRM WIDEVINE TOKEN}',
                            'X-NCP-REGION_CODE': 'KR',
                            'X-NCP-IAM-ACCESS-KEY': accessKey,
                            'X-NCP-APIGW-TIMESTAMP': timestamp2,
                            'X-NCP-APIGW-SIGNATURE-V2': signature2,		 
                        },
                        src : 'http://example.com/index.mpd'
                    },
                    'com.microsoft.playready':{
                        licenseUri : '{License Endpoint}',
                        licenseRequestHeader:{
                            'X-DRM-TOKEN': '{One Click Multi DRM PLAYREADY TOKEN}',
                            'X-NCP-REGION_CODE': 'KR',
                            'X-NCP-IAM-ACCESS-KEY': accessKey,
                            'X-NCP-APIGW-TIMESTAMP': timestamp2,
                            'X-NCP-APIGW-SIGNATURE-V2': signature2,		 
                        },
                        src : 'http://example.com/index.mpd'
                    },
                poster: 'http://example.com/myVideoThumb.png',
                }
            }
        ],
        autostart: true
    });
});
```

## DRM 테스트

스크립트 코드를 작성하여 DRM 테스트를 진행할 수 있습니다.

          참고

          

DRM 테스트를 진행하려면 기본 플레이어 실행 스크립트(`ncplayer()`)가 아닌 별도의 실행 스크립트(`ncplayerDRM()`)를 이용해야 합니다.

```
// DRM 전용 스크립트 코드를 이용합니다.
// DOM이 완전히 로드되고 실행해야 DRM이 에러 없이 실행됩니다.
document.addEventListener('DOMContentLoaded',  async ()=> {
    await ncplayerDRM('video1',{});
})
```

#### Widevine/PlayReady

Widevine 또는 PlayReady 유형의 DRM을 테스트하는 스크립트는 다음과 같습니다.

          참고

          

- Widevine 또는 PlayReady DRM 테스트를 위해 다음 정보가 필요합니다.
  - DASH 재생 소스의 URL
  - DRM 토큰 값
- Widevine은 Chrome 브라우저, PlayReady는 Windows OS Edge 브라우저에서 테스트할 수 있습니다.

```
document.addEventListener('DOMContentLoaded',  async ()=> {
    await ncplayerDRM('video1',{
        playlist: [
            {
                drm:{
                    'com.widevine.alpha':{
                        licenseUri : 'https://license-global.pallycon.com/ri/licenseManager.do',
                        licenseRequestHeader:{
                            'pallycon-customdata-v2':'{Token}'
                        },
                        src : '{dash url}'
                    },
                    'com.microsoft.playready':{
                        licenseUri : 'https://license-global.pallycon.com/ri/licenseManager.do',
                        licenseRequestHeader:{
                            'pallycon-customdata-v2':'{Token}'
                        },
                        src : '{dash url}'
                    },
                },
                poster: 'https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202207/ae73f3a32b49205fafdc3303c7f0c0b8.png',
            }
        ],
    });
});
```

#### FairPlay(FPS)

FairPlay 유형의 DRM을 테스트하는 스크립트는 다음과 같습니다.

          참고

          

- FairPlay DRM 테스트를 위해 다음 정보가 필요합니다.
  - HLS 재생 소스의 URL
  - Certificate URL(인증 URL)
  - DRM 토큰 값
- Mac OS Safari 브라우저에서 테스트할 수 있습니다.

```
document.addEventListener('DOMContentLoaded',  async ()=> {
    await ncplayerDRM('video1',{
        playlist: [
            {
                drm:{
                    'com.apple.fps':{
                        certificateUrl: '{Certificate URL}',
                        licenseUri : 'https://license-global.pallycon.com/ri/licenseManager.do',
                        licenseRequestHeader:{
                            'Content-type': 'application/x-www-form-urlencoded',
                            'pallycon-customdata-v2':'{Token}'
                        },
                        src : '{hls url}'
                    },
                },
                poster: 'https://nnbkegvqsbcu5297614.cdn.ntruss.com/profile/202207/ae73f3a32b49205fafdc3303c7f0c0b8.png',
            }
        ],
    });
});
```
