Django 보호 동영상
Django 인증과 고객의 권한 검사 콜백을 사용합니다. DRM-X 패키지는 동영상 테이블이나 접근 권한 테이블을 생성하지 않습니다.
미리보기 SDK, 응용 예제 및 소스. 추출된 폴더 레이아웃을 유지하십시오.
직접 수정할 세 위치#
- 설정
settings.pydrmx를 추가하고 AUTHORIZE를 포함한 DRMX를 구성합니다.
- 권한 부여
앱의 drmx_access.py
기존 시스템에 대한 authorize(user, video_id)를 구현합니다.
- 라우트 연결
urls.pydrmx.urls를 포함; 당신의 정상적인 로그인 및 CSRF 미들웨어를 재사용.
1. wheel 패키지 설치#
# From the extracted kit root:
python -m pip install packages/python/drmx_django-1.3.0rc13-py3-none-any.whlPython 3.12+와 지원되는 Django 버전(5.2–6.0)을 사용합니다. drmx을 INSTALLED_APPS에 추가하고 인증, 세션, CsrfViewMiddleware를 유지합니다. 새 설치에는 DRM-X 마이그레이션 명령이 필요하지 않습니다. 고객의 앱 자체에는 일반 마이그레이션이 필요할 수 있습니다.
2. 설정과 라우트 구성#
# settings.py — keep your existing application settings
DRMX = {
'SITE_ID': os.environ['DRMX_SITE_ID'],
'SITE_KEY': os.environ['DRMX_SITE_KEY'],
'ACCESS_KEY': os.environ['DRMX_ACCESS_KEY'],
'INSTANCE_ID': 'my-website',
'POLICY': 'multi-tier-standard',
'AUTHORIZE': 'myapp.drmx_access.authorize',
}
# urls.py — add to your existing urlpatterns
path('video/', include('drmx.urls'))평소처럼 settings에 os을, urls에 path/include를 가져옵니다. myapp을 애플리케이션 모듈로 교체합니다.
3. 접근이 허용된 콘텐츠 반환#
myapp/drmx_access.py을 만듭니다. 아래 저장소 호출은 예시이므로 실제 구매·멤버십·수강 등록 조회로 구현합니다.
def authorize(user, video_id):
video = customer_catalog.find_authorized_video(user.id, video_id)
if video is None:
return None
return {'content_id': video.drmx_content_id,
'content_type': 'vod', 'title': video.title}첫 로컬 테스트에서는 기존 테스트 사용자 한 명과 사이트 동영상 ID 하나만 허용한 후 게시된 Content ID를 반환할 수 있습니다. 이 임시 허용 규칙은 로컬 테스트에만 사용합니다. 포함된 examples/sdk/django/authorization.py은 권한 검사를 구현하기 전까지 모든 접근을 거부합니다.
운영 환경에서는 호출할 때마다 데이터베이스를 조회합니다. 권한이 없거나 만료 또는 철회되었으면 None을 반환합니다. 정책을 생략하면 설정된 기본값을 사용합니다.
4. 로그인하고 플레이어 열기#
고객이 선택한 사이트 동영상 ID로 /video/lesson-123/을 엽니다. 문자열 ID와 UUID를 사용할 수 있습니다. SDK는 플레이어 페이지와 세션 엔드포인트를 제공하고 요청마다 콜백을 다시 검사합니다.
Django의 기본 보안 유지#
공급된 CSRF 유효성 검사 및 동일한 origin 엔드포인트를 유지하십시오. 현재 플레이어는 endpoint URL의 Masked CSRF 토큰을 전달합니다. 액세스 로그에서 쿼리 문자열을 제외하고 no-store/no-referrer 동작을 유지합니다. HTTPS 및 보안 세션 쿠키를 사용합니다.
DRM-X 테이블로 이전 설치를 업그레이드 하시겠습니까? 이전 앱을 제거하기 전에 마이그레이션 기록을 보존하고 legacy/README.md를 읽으십시오. 새로운 SDK는 그 테이블을 삭제하지 않습니다.
운영 배포 전 확인#
- 접근이 허용된 사용자로 로그인하여 지원되는 브라우저에서 게시된 동영상을 재생합니다.
- 로그아웃 사용자와 미결제 사용자를 테스트하고 권한 철회 및 만료도 확인합니다. 새 세션 요청은 거부되어야 합니다.
- 브라우저의 Content ID 또는 사이트 동영상 ID를 변경해 봅니다. 서버는 새 선택 항목을 검사해야 합니다.
- 정확한 공개 HTTPS 출처를 설정하고 프레임워크의 세션 및 CSRF 보호를 유지하며 데모 신원 코드를 비활성화합니다.
기존 세션과 DRM 라이선스에는 자체 유효기간이 있습니다. 새 요청에서는 권한 변경을 검사하지만 이미 발급된 라이선스를 삭제하지는 않습니다.
DRM-X 6.0