본문으로 건너뛰기

콘텐츠 접근 제어 (JWT)

JWT 기반 콘텐츠 인증이란?

JWT(JSON Web Token)은 사용자 인증(authentication) 및 권한 부여(authorization)를 안전하게 처리하기 위한 업계 표준 방식입니다.

Kollus VOD에서는, 고유 보안 키와 사용자 키를 활용해 JWT를 발급함으로써 다음과 같은 보안 메커니즘을 구현합니다.

  • 콘텐츠 접근 권한이 있는 사용자만 재생 및 다운로드 가능
  • 미디어 콘텐츠 키 기반 권한 관리

인증에 사용되는 키

인증 키설명
보안 키JWT 서명에 사용되는 비밀 키입니다.
사용자 키보안 키를 암호화한 값으로, 서비스 계정의 고유 식별자입니다. 이를 통해 사용자를 식별하고 세션을 관리합니다.
미디어 콘텐츠 키채널에 등록된 콘텐츠 각각에 부여되는 고유 키입니다. 콘텐츠 재생 및 다운로드 권한 확인에 사용됩니다.
ℹ️참고

각 인증 키에 대한 자세한 설명은 콘텐츠 연동 키 문서를 참고하세요.


JWT 생성 방식 및 인증 처리 흐름

JWT 기본 구조

JWT는 세 부분으로 구성됩니다.

JWT 구조
구성 요소역할
헤더(header)암호화 알고리즘과 토큰 유형 등 메타 정보를 포함합니다.
페이로드(payload)사용자 ID, 유효 기간, 콘텐츠 키 등 인증 및 권한 정보를 포함합니다. 각 데이터 항목을 클레임(Claim)이라고 부릅니다.
서명(signature)헤더와 페이로드를 조합한 뒤, 서버에서 관리하는 비밀 키로 암호화한 값입니다. 이 서명을 통해 토큰의 무결성과 위·변조 여부를 검증할 수 있습니다.

Kollus VOD에서의 JWT 생성 방식

Kollus VOD에서는 다음과 같은 방식으로 JWT를 생성합니다.

  • 암호화 알고리즘: HMAC SHA-256(HS256)
  • 서명용 비밀 키: 서비스 계정에 설정된 보안 키
  • 페이로드 내용: 사용자 ID, 토큰 만료 시간, 미디어 콘텐츠 키 등

생성된 JWT는 사용자 키와 함께 아래 형식으로 콘텐츠 재생 요청 URL에 포함됩니다.

https://v.kr.kollus.com/s?jwt={생성한 JWT}&custom_key={사용자 키}

JWT 인증 처리 흐름

JWT 생성 과정

  1. 클라이언트가 로그인하면 서버는 사용자 정보를 확인하고, JWT 페이로드에 사용자 ID, 미디어 콘텐츠 키 등을 담습니다.
  2. 서버는 설정된 보안 키로 JWT를 생성하여 클라이언트에 전달합니다.
  3. 클라이언트는 JWT와 사용자 키를 포함해 재생 URL을 요청합니다.
  4. 서버는 서명을 검증하고, 페이로드 내 정보(만료 시간, 콘텐츠 키 등)를 확인합니다.
  5. 토큰이 유효한 경우 콘텐츠 재생을 허용합니다.

JWT 페이로드 예시

사용자 catenoid가 콘텐츠 vnCVPVyV(미디어 콘텐츠 키)를 재생하는 JWT 페이로드의 예시입니다.

{
"cuid": "catenoid",
"expt": 1703980800,
"mc": [
{
"mckey": "vnCVPVyV"
}
]
}
옵션설명
cuid사용자 ID
expt콘텐츠 재생 유효 시간(JWT 만료 시간)
mc콘텐츠 정보를 담은 배열
mckey콘텐츠 식별자(미디어 콘텐츠 키)
ℹ️참고

자세한 내용은 암호화 콘텐츠 재생 URL 생성 (JWT) 문서를 참고하세요.