--- title: "라이선스 클라이언트 연동" slug: "license-client-bind" updated: 2026-09-17T09:16:50Z published: 2026-09-17T09:16:50Z canonical: "api.ncloud-docs.com/license-client-bind" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # 라이선스 클라이언트 연동 Classic/VPC 환경에서 이용 가능합니다. DRM 라이선스를 클라이언트(플레이어)에 연동하는 예시를 설명합니다. 참고 - DRM 타입에 따라 라이선스 발급 요청 정보가 달라집니다. DRM 타입별 라이선스 발급 가이드를 참조해 주십시오. - [라이선스 발급(Widevine/PlayReady)](/docs/license-request) - [라이선스 발급(FairPlay)](/docs/fairplay-streaming-license-request) - 모든 라이선스 요청은 DRM 콘텐츠를 재생할 단말 기기 정보와 플레이어 구현을 통해 요청해야 합니다. - One Click Multi DRM 서비스는 네이버클라우드의 Video Player Enhancement 서비스와 손쉬운 연동을 지원합니다. 자세한 내용은 [VPE 콘텐츠 인증](https://guide.ncloud-docs.com/docs/vpe-example-auth#one-click-multi-drm)을 참조해 주십시오. ## 요청 요청 형식을 설명합니다. ### 요청 헤더 One Click Multi DRM API에서 공통으로 사용하는 헤더에 대한 정보는 [One Click Multi DRM 요청 헤더](/docs/one-click-multi-drm-api-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)를 참조해 주십시오. #### `X-DRM-TOKEN` 헤더 생성 One Click Multi DRM 서비스에서 API로 라이선스를 발급하려면 `X-DRM-TOKEN` 헤더가 필요합니다. 이 헤더는 요청 사용자의 권한을 검증하고, 선택한 사이트의 보안 정책을 기반으로 DRM 라이선스를 발급하는 데 사용됩니다. 헤더 값이 유효하지 않으면 라이선스가 발급되지 않습니다. `X-DRM-TOKEN` 헤더를 생성하는 방법은 다음과 같습니다. 1. `siteId`, `contentId`, `drmType`, `responseFormat`, `userId`에 대한 JSON 데이터를 입력해 주십시오. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `siteId` | String | Required | 라이선스 발행을 위한 사이트 아이디 - [사이트 목록 조회](/docs/site-list) 참조 | | `contentId` | String | Required | 재생하려는 콘텐츠의 고유 식별자 - 영문자, 숫자, 특수 문자 '-', '_'를 조합하여 3~100자 이내로 입력 - Live/VOD Station 서비스에서 채널에 설정한 Multi DRM Content ID 값 입력 | | `drmType` | String | Required | 라이선스를 요청하는 DRM 타입 - `WIDEVINE` \| `PLAYREADY` \| `FAIRPLAY` | | `responseFormat` | String | Required | 응답 데이터의 형식 - `ORIGINAL` (기본값) \| `JSON` - `ORIGINAL`: 요청한 바이너리 데이터로 응답. 일반적인 멀티 DRM 연동 클라이언트(HTML5, Video.js, Shaka)의 지원 형식 - `JSON`: 라이선스 데이터와 추가 정보(클라이언트 기기 아이디 등)를 포함한 JSON으로 응답. 토큰 프록시 또는 클라이언트 SDK를 사용하는 경우에만 적용 가능 | | `userId` | String | Required | 콘텐츠를 재생하려는 사용자의 고유 아이디 - 서비스 사이트에서 관리하는 사용자 아이디 또는 DRM 콘텐츠를 재생할 사용자 계정 | - 입력 예시 ``` {"siteId":"{사이트 아이디}","contentId":"{콘텐츠 아이디}","drmType":"{DRM 타입}","responseFormat":"{응답 형식}","userId":"{사용자 고유 ID}"} ``` 2. JSON 데이터를 Base64 문자열로 변환해 주십시오. - 변환 예시 ``` eyJzaXRlSWQiOiJkcm0tMjAyMzExMTUxNDIzMjYtbkh5TnciLCJjb250ZW50SW...dXNlcklkIjoiZDQxZDhjZDk4ZjAwYjIwNGU5ODAwOTk4ZWNmODQyN2UifQ== ``` 참고 JSON 데이터 입력 시 불필요한 공백이나 개행이 포함되지 않도록 주의해 주십시오. ### 요청 예시 요청 예시는 다음과 같습니다. ``` //Widevine 라이선스 요청 예시 'com.widevine.alpha': { src: 'https://uz1urqjj2471.edge.naverncp.com/live/video/ls-20231031105925-*****/live.mpd', //DRM 암호화가 적용된 콘텐츠 재생 경로 licenseUri: 'https://multi-drm.apigw.ntruss.com/api/v1/license', //DRM 라이선스 발급 요청 경로 licenseRequestHeader: { 'X-NCP-REGION_CODE': 'KR', 'X-ncp-apigw-timestamp': 1698832564997, 'X-ncp-iam-access-key': 'ft1GKEpjSc**********', 'x-ncp-apigw-signature-v2': 'Z0LjTbqFjWtxlRskM8vDj**********************=', 'X-DRM-TOKEN': 'eyJyZXNwb25zZUZvcm1hdCI6Im9yaWdpbmFsIiwic2l0ZUlkIjoiZHJtLTIwMjMxMTAxMDgyMzE2LWRKREdhIiwiY29udGVudElkIj**************************************************' } //One Click Multi DRM 서비스 활용을 위한 apigw 필수 인증 및 X-DRM-TOKEN 헤더 값 }, //PlayReady 라이선스 요청 예시 'com.microsoft.playready': { src: 'https://uz1urqjj2471.edge.naverncp.com/live/video/ls-20231031105925-*****/live.mpd', //DRM 암호화가 적용된 콘텐츠 재생 경로 licenseUri: 'https://multi-drm.apigw.ntruss.com/api/v1/license', //DRM 라이선스 발급 요청 경로 licenseRequestHeader: { 'X-NCP-REGION_CODE': 'KR', 'X-ncp-apigw-timestamp': 1698832564997, 'X-ncp-iam-access-key': 'ft1GKEpjSc**********', 'x-ncp-apigw-signature-v2': 'Z0LjTbqFjWtxlRskM8vDj**********************=', 'X-DRM-TOKEN': 'eyJyZXNwb25zZUZvcm1hdCI6Im9yaWdpbmFsIiwic2l0ZUlkIjoiZHJtLTIwMjMxMTAxMDgyMzE2LWRKREdhIiwiY29udGVudElkIj**************************************************' } //One Click Multi DRM 서비스 활용을 위한 apigw 필수 인증 및 X-DRM-TOKEN 헤더 값 }, //FairPlay Streaming 라이선스 요청 예시 'com.apple.fps': { src: 'https://uz1urqjj2471.edge.naverncp.com/live/video/ls-20231031105925-*****/playlist.m3u8', //DRM 암호화가 적용된 콘텐츠 재생 경로 certificateUri: 'https://multi-drm.apigw.ntruss.com/api/v1/license/fairPlay', //DRM 라이선스 발급을 위해 필요한 FPS 인증서 요청 경로 certificateRequestHeader: { 'X-NCP-REGION_CODE': 'KR', 'X-ncp-apigw-timestamp': 1698832564997, 'X-ncp-iam-access-key': 'ft1GKEpjSc**********', 'x-ncp-apigw-signature-v2': 'Z0LjTbqFjWtxlRskM8vDj**********************=', 'X-DRM-TOKEN': 'eyJyZXNwb25zZUZvcm1hdCI6Im9yaWdpbmFsIiwic2l0ZUlkIjoiZHJtLTIwMjMxMTAxMDgyMzE2LWRKREdhIiwiY29udGVudElkIj**************************************************' }, //One Click Multi DRM 서비스 활용을 위한 apigw 필수 인증 및 X-DRM-TOKEN 헤더 값 licenseUri: 'https://multi-drm.apigw.ntruss.com/api/v1/license', //DRM 라이선스 발급 요청 경로 licenseRequestHeader: { 'X-NCP-REGION_CODE': 'KR', 'X-ncp-apigw-timestamp': 1698832564997, 'X-ncp-iam-access-key': 'ft1GKEpjSc**********', 'x-ncp-apigw-signature-v2': 'Z0LjTbqFjWtxlRskM8vDj**********************=', 'X-DRM-TOKEN': 'eyJyZXNwb25zZUZvcm1hdCI6Im9yaWdpbmFsIiwic2l0ZUlkIjoiZHJtLTIwMjMxMTAxMDgyMzE2LWRKREdhIiwiY29udGVudElkIj**************************************************' } //One Click Multi DRM 서비스 활용을 위한 apigw 필수 인증 및 X-DRM-TOKEN 헤더 값 } ``` ## 응답 응답 형식을 설명합니다. ### 응답 상태 코드 One Click Multi DRM API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 [One Click Multi DRM 응답 상태 코드](/docs/one-click-multi-drm-api-overview#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)를 참조해 주십시오. ### 응답 예시 응답 성공 시 `200 OK`와 함께 DRM 라이선스가 클라이언트(플레이어)에 연동됩니다.