Django保護ビデオ
Django 認証と独自の権限チェック用コールバックを使います。DRM-X パッケージは動画テーブルやアクセス許可テーブルを作成しません。
プレビュー版 SDK、アプリのサンプル、ソースが含まれます。展開後のフォルダー構造を維持してください。
カスタマイズする3つの場所#
- 設定
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}最初のローカルテストでは、既存のテストユーザー1人とサイトの動画 ID 1つだけを許可し、公開済みの Content ID を返します。この一時的な許可規則はローカルテストに限定してください。同梱の examples/sdk/django/authorization.py は、実装するまで全員のアクセスを拒否します。
本番では毎回データベースを照会します。権限がない、期限切れ、または取り消された場合は None を返します。ポリシーを省略すると設定済みのデフォルトが使われます。
4. ログインしてプレーヤーを開く#
選択したサイトの動画 ID を使って /video/lesson-123/ を開きます。文字列 ID と UUID に対応しています。SDK はプレーヤーページとセッションエンドポイントを提供し、各リクエストでコールバックを再実行します。
Django の通常の保護を維持する#
同梱の CSRF 検証と同一オリジンのエンドポイントを維持します。現在のプレーヤーはエンドポイント URL にマスク済み CSRF トークンを渡します。クエリ文字列をアクセスログから除外し、no-store/no-referrer の動作を維持してください。HTTPS と安全なセッション cookie を使用します。
DRM-Xテーブルで古いインストールをアップグレードしますか? 移行履歴を保存し、古いアプリを削除する前に legacy/README.md を読み込みます。 新しい SDK はこれらのテーブルを削除しません。
本番公開前の確認#
- 許可されたユーザーとしてサインインし、サポートされているブラウザーで公開された動画を再生します。
- 未ログインと未払いのユーザーを試し、権限の取り消しと期限切れもテストします。新規セッション要求は拒否される必要があります。
- ブラウザContent IDまたはWebサイトのビデオIDを変更します。 サーバは新しい選択を点検しなければなりません。
- 公開 HTTPS オリジンを正確に設定し、フレームワークのセッション/CSRF 保護を維持して、デモ用のユーザー識別コードを無効にしてください。
既存のセッションと DRM ライセンスには独自の有効期間があります。新しいリクエストでは権限の変更を確認しますが、発行済みのライセンスを消去するわけではありません。
DRM-X 6.0