콘텐츠 접근 제어 (JWT)
JWT 기반 콘텐츠 인증이란?
JWT(JSON Web Token)는 사용자 인증(Authentication) 및 권한 부여(Authorization)를 안전하게 처리하기 위한 업계 표준 방식입니다.
Kollus VOD는 고유의 보안 키 시스템을 기반으로 한 JWT 발급 메커니즘을 통해 다음과 같은 고수준 보안을 구현합니다.
- URL 변조 방지: 재생 URL이 생성된 후 외부에서 데이터를 임의로 변경할 수 없도록 서명(Signature) 검증을 거칩니다.
- 세밀한 권한 제어: 인증된 사용자(End User)에게만 재생 권한을 부여하거나, 토큰의 유효 시간을 설정하여 콘텐츠 유출을 방지합니다.
인증에 사용되는 키
| 인증 키 | 설명 |
|---|---|
| 보안 키 | JWT의 무결성을 보장하기 위한 비밀 키입니다. 서명 생성 시 사용됩니다. |
| 사용자 키 | 서비스 계정의 고유 식별자입니다. JWT와 함께 전달되어 어떤 계정의 보안 키로 서명을 검증할지 판단하는 기준이 됩니다. |
| 미디어 콘텐츠 키 | 채널에 등록된 콘텐츠에 부여되는 고유 식별자입니다. 토큰에 포함되어 해당 콘텐츠에 대한 실제 접근 권한을 증명합니다. |
ℹ️인증 및 식별 키(Key) 정보
인증 및 식별 키 정보는 아래 문서를 참고하세요.
JWT 구조 및 인증 프로세스
JWT 기본 구조
JWT는 세 부분으로 구성됩니다.
| 구성 요소 | 역할 |
|---|---|
| 헤더 (Header) | 토큰의 유형(JWT)과 서명에 사용된 암호화 알고리즘(예: HS256) 정보를 담습니다. |
| 페이로드 (Payload) | 실제 인증 정보인 클레임(Claims)이 포함됩니다. 사용자 ID, 만료 일시, 허용된 미디어 콘텐츠 키 등이 여기에 기록됩니다. |
| 서명 (Signature) | 헤더와 페이로드를 조합한 후 서버만 알고 있는 보안 키로 암호화한 값입니다. 토큰의 위·변조를 판별하는 핵심 장치입니다. |
Kollus VOD 인증 처리 워크플로우
Kollus VOD는 업계 표준 보안 규격인 HMAC SHA-256(HS256) 알고리즘을 사용합니다.
- 토큰 요청: 사용자(End User)가 서비스 로그인을 시도하면, 고객사 서버는 해당 사용자의 정보를 확인합니다.
- JWT 생성: 고객사 서버에서 보안 키를 사용하여 사용자 ID, 만료 일시 등이 포함된 JWT를 생성합니다.
- 재생 URL 요청: 클라이언트는 생성된 JWT와 사용자 키를 결합하여 아래 형식의 URL로 재생을 요청합니다.
https://v.kr.kollus.com/s?jwt={JWT}&custom_key={사용자_키} - 무결성 검증: Kollus 인증 서버는 전달받은 사용자 키로 해당 계정의 보안 키를 찾아 JWT 서명을 검증합니다.
- 재생 승인: 서명이 유효하고 페이로드 내 만료 일시가 지나지 않았다면, 즉시 재생 세션을 발급합니다.
JWT 페이로드 예시
사용자 catenoid가 콘텐츠 vnCVPVyV(미디어 콘텐츠 키)를 재생하기 위한 JWT 페이로드 예시입니다.
{
"cuid": "catenoid",
"expt": 1703980800,
"mc": [
{
"mckey": "vnCVPVyV"
}
]
}
| 옵션 | 설명 |
|---|---|
| cuid | 사용자 ID |
| expt | JWT 만료 일시 |
| mc | 재생할 콘텐츠 정보를 포함하는 배열 |
| mckey | 콘텐츠 식별자 (미디어 콘텐츠 키) |
ℹ️JWT 상세 가이드 (개발자용)
JWT 구성에 대한 상세 설명은 아래 문서를 참고하세요.