멀티DRM 네이티브 클라이언트 연동 가이드

개요

PallyCon 멀티DRM 클라우드 서버는 Google Widevine Modular, Apple FairPlay Streaming, Microsoft PlayReady DRM 라이선스를 발급하는 기능을 제공합니다. 클라이언트에서 멀티DRM 라이선스를 발급받기 위해서는 해당 서비스 사이트와의 연동을 통해 사용자 인증을 해야 하며, 연동 방식은 다음과 같이 두 가지 방식이 있습니다.

  1. 토큰 방식
  • 서비스 사이트에서 미리 정의된 규격에 따라 라이선스 토큰을 생성해 클라이언트에 전달하고, 클라이언트는 해당 토큰을 이용해 라이선스를 발급받는 방식입니다.
  • 라이선스 토큰 가이드 참조
  1. 토큰 프록시 방식
  • 서비스 사이트 백엔드의 프록시 서버에서 클라이언트와 PallyCon 라이선스 서버 간의 라이선스 요청/응답을 중계하는 방식입니다.
  • 클라이언트와 프록시 서버 간의 통신과 인증은 임의의 DRM 커스텀데이터 등을 이용해 구현되며, 프록시와 라이선스 서버는 토큰을 통해 요청을 주고 받습니다.

본 문서는 멀티DRM 클라이언트(HTML5 플레이어, iOS/Android 앱, 스마트TV, 셋탑박스 등)에서 PallyCon 클라이언트 SDK를 사용하지 않고 직접 각 기기의 네이티브 DRM을 사용해 개발할 경우에 PallyCon 멀티DRM 클라우드 서버로부터 라이선스를 발급받기 위한 연동 가이드 문서입니다.

멀티DRM 라이선스 발급 과정

  1. 콘텐츠 재생 준비
  • 클라이언트(Player)에서 DRM 콘텐츠 재생을 위해 서비스 사이트 백엔드로부터 DRM 연동을 위한 커스텀 데이터(사용자 인증 데이터 또는 라이선스 토큰)를 전달받아 DRM 콘텐츠 재생을 시도합니다.
  1. 라이선스 요청
  • 클라이언트에서 설정한 사용자 인증 데이터(Auth Data) 또는 라이선스 토큰 정보는 네이티브 DRM 모듈이 생성한 License Challenge 정보와 함께 PallyCon 멀티DRM 클라우드 서버 또는 프록시 서버로 전송됩니다.
  1. 프록시 방식 사용자 인증
  • 프록시 방식으로 연동된 경우, 서비스 사이트의 프록시 서버에서 사용자 인증 및 권한 확인 후 PallyCon 멀티 DRM 서버로 토큰 방식 라이선스를 요청합니다.
  • 토큰 방식 연동에서는 토큰 발급 전에 서비스 사이트에서 사용자 인증이 처리되므로, 본 과정은 생략됩니다.
  1. 라이선스 발급
  • PallyCon 멀티DRM 클라우드 서버는 토큰 요청 정보에 설정된 권한 정보를 이용해 클라이언트의 DRM 종류에 따라 라이선스를 발급합니다.

Widevine Modular / PlayReady DRM 라이선스 연동

Request

  • Request URI : https://license-global.pallycon.com/ri/licenseManager.do
  • Request Method : POST
  • 커스텀 HTTP 헤더, URL 파라미터 등의 방식으로 PallyCon 커스텀 데이터의 전송이 가능하며, PlayReady의 경우에는 PlayReady Challenge의 customdata 필드도 이용 가능합니다.
Name Value
pallycon-customdata-v2 토큰 방식 라이선스 연동에 사용되며, 백엔드 서버에서 전달받은 라이선스 토큰 값을 입력합니다.

POST 바디에는 네이티브 DRM 클라이언트 모듈에서 생성한 라이선스 챌린지 데이터를 입력합니다.

Response

  • 라이선스 정상 발급
Name Value
status code 200 OK
response body DRM 라이선스 데이터
- Widevine Modular: 바이너리 데이터
- PlayReady DRM : base64 인코딩된 문자열
  • 라이선스 발급 오류
Name Value
status code 200 OK
response body JSON Data {“eccorCode”: “error code”,“message”: “error message”}

FairPlay Streaming DRM 라이선스 연동

FPS License 발급을 연동하기 위해서는 콘텐츠 서비스 측에서 Apple로부터 아래 정보를 발급 받아 PallyCon 멀티DRM 서버에 설정해 주어야 합니다.

  1. Apple 개발자 계정 생성 ( https://developer.apple.com/support/enrollment/ )
  2. Apple에 FPS Deployment Package 신청 ( https://developer.apple.com/streaming/fps/ )
  3. Deployment Package를 이용해 생성한 다음 4가지 정보를 PallyCon 콘솔 사이트의 연동 설정에 등록
- FPS Certificate 파일 (.der or .cer)
- Private key 파일 (.pem)
- Private key 암호 문자열
- Application secret key (ASK) 문자열

위 등록 과정에 대한 상세한 설명은 FairPlay 인증서 등록 자습서를 참고하시기 바랍니다.

1. FPS Certification File 다운로드 연동 규격

FPS 클라이언트에서는 FPS 연동을 하기 위해 사전에 등록된 인증서 데이터를 PallyCon 서버로부터 아래 연동 규격을 통해 다운 받아야 합니다.

Request

Parameter Value
siteId PallyCon Service에서 발급 받은 서비스 사이트 ID (4 byte)

Response

  • 정상
Name Value
status code 200 OK
response body base64 인코딩 (FPS 인증서 데이터)
  • 오류
Name Value
status code 200 OK
response body JSON Data {“errorCode”: “error code”, “message”: “error message”}

FPS 인증서 URL은 고객사의 편의를 위해 제공되는 것으로, 필요에 따라 위 규격 대신 해당 Cert 파일(.cer 또는 .der)을 고객사에서 자체 서버에 호스팅하고 해당 URL을 사용할 수도 있습니다.

2. FPS 라이선스 연동 규격

Request

Name Value
pallycon-customdata-v2 토큰 방식 라이선스 연동에 사용되며, 백엔드 서버에서 전달받은 라이선스 토큰 값을 입력합니다.
  • POST 바디에는 Base64 인코딩된 SPC 데이터를 입력합니다.
Parameter Value
spc base64 인코딩 (네이티브 DRM 클라이언트에서 생성한 SPC 데이터)

Response

  • 라이선스 정상 발급
Name Value
status code 200 OK
response body base64 인코딩 (PallyCon FPS 서버에서 생성한 CKC 데이터)
  • 라이선스 발급 오류
Name Value
response body JSON Data {“errorCode”: “error code”, “message”: “error message”}
이전
다음