DRMManager クラスの使用

Flash Player 10.1 以降、Adobe AIR 1.5 以降

DRMManager クラスを使用すると、アプリケーションで証明書や Media Rights Server セッションを管理できます。

証明書の管理(AIR のみ)

ランタイムは、保護されたコンテンツをユーザーが再生するたびに、コンテンツの表示に必要なライセンスを取得してキャッシュします。アプリケーションがローカルにファイルを保存した場合、ライセンスはオフラインでの再生を許可し、ユーザーは AIR アプリケーションでコンテンツを表示できます。このようなローカルのオフラインでの再生は、Media Rights Server に接続できない場合でも実行できます。DRMManager および NetStream の preloadEmbeddedMetadata() メソッドを使用して、証明書を事前にキャッシュすることができます。アプリケーションは、コンテンツの表示に必要なライセンスを取得する必要はありません。例えば、アプリケーションでメディアファイルをダウンロードし、ユーザーがオンライン状態であるうちに証明書を取得することができます。

証明書を事前に読み込むには、NetStream preloadEmbeddedMetadata() メソッドを使用して DRMContentData オブジェクトを取得します。DRMContentData オブジェクトには、ライセンスを提供できる Media Rights Server の URL とドメインが格納されているだけでなく、ユーザー認証が必要かどうかも記述されています。この情報を使用して DRMManager loadVoucher() メソッドを呼び出し、証明書を取得してキャッシュできます。証明書を事前に読み込むためのワークフローについては、オフライン再生用の証明書の事前読み込みを参照してください。

セッションの管理

DRMManager を使用して、Media Rights Server でユーザーを認証し、永続的なセッションを管理することもできます。

Media Rights Server とのセッションを確立するには、DRMManager authenticate() メソッドを呼び出します。認証が正常に完了すると、DRMManager から DRMAuthenticationCompleteEvent オブジェクトが送出されます。このオブジェクトにはセッショントークンが格納されています。このトークンを保存すると、ユーザーは今後のセッション確立時にアカウント情報を入力する必要がなくなります。新しい認証済みのセッションを確立するには、トークンを setAuthenticationToken() メソッドに渡します(トークンを生成したサーバーの設定によって、トークンの有効期限などの属性が決定します。AIR アプリケーションコードではトークンのデータ構造を解析しないでください。今後の AIR の更新によってデータ構造が変更される可能性があるからです)。

認証トークンは、他のコンピューターに転送できます。トークンを保護するには、トークンを AIR の暗号化されたローカルストアに保存します。詳しくは、暗号化されたローカルストアを参照してください。

DRMStatus イベント

loadVoucher() メソッドの呼び出しが正常に完了すると、DRMManager から DRMStatusEvent オブジェクトが送出されます。

証明書が取得されると、イベントオブジェクトの detail プロパティ(AIR のみ)の値が「DRM.voucherObtained」になり、voucher プロパティに DRMVoucher オブジェクトが格納されます。

証明書が取得されなかった場合も detail プロパティ(AIR のみ)の値は「DRM.voucherObtained」になりますが、voucher プロパティは null になります。証明書を取得できないのは、LoadVoucherSetting が localOnly に設定されているにもかかわらず、ローカルにキャッシュされている証明書がない場合などです。

loadVoucher() の呼び出しが(認証エラーまたは通信エラーなどにより)正常に完了しなかった場合、DRMManager からは代わりに DRMErrorEvent オブジェクトまたは DRMAuthenticationErrorEvent オブジェクトが送出されます。

DRMAuthenticationComplete イベント

authenticate() メソッドの呼び出しによってユーザーの認証が正常に完了した場合、DRMManager から DRMAuthenticationCompleteEvent オブジェクトが送出されます。

DRMAuthenticationCompleteEvent オブジェクトには、複数のアプリケーションセッションでユーザー認証の保持に使用できる再利用可能なトークンが格納されています。このトークンを DRMManager setAuthenticationToken() メソッドに渡すとセッションを再確立できます(トークンの作成者は、有効期限などのトークンの属性を設定します。トークン属性を調べる API は提供されません)。

DRMAuthenticationError イベント

authenticate() メソッドまたは setAuthenticationToken() メソッドの呼び出しによってユーザーの認証を正常に完了できない場合、DRMManager から DRMAuthenticationErrorEvent オブジェクトが送出されます。