PK とサーバーの以前のバージョンから移行する方法
PlayReady Services のおすすめ
Microsoft では、次の移行ポリシーをお勧めします。
サービスが PlayReady SDK の最新バージョンにアップグレードされていることを確認します。 これにより、新しいデバイスとレガシ デバイス間で最適な互換性が提供されます。 最新バージョンの Server SDK でも、パフォーマンスと安定性が大幅に向上しています。 最新の PlayReady Server 4.0 にアップグレードするために、 追加のライセンスやライセンス料金は必要ありません 。
新しいデバイスがハードウェア (SoC) への PlayReady の移行を続けるにつれて、PlayReady 3.0 以降、SL3000 としてサービスに報告するデバイスが増えます。 たとえば、すべてのWindows 10デバイスが PlayReady 3.0 以降のデバイスとして報告されるようになりました。 サービスは、互換性を維持するだけでなく、一部の新機能を利用するために、最新バージョンのサーバー SDK にアップグレードすることをお勧めします。
新しいデバイスをサポートしながら従来のライセンス サービスをそのまま維持するなどのエッジ ケースを処理するためのガイドとして、このトピックで提供されている情報を使用します。
ライセンシーは、フィードバック サイトにアクセスして移行に関する質問を送信するために連絡 askdrm@microsoft.com できます。
PlayReady デバイスの製造元向けのおすすめ
OEM は、2017 年 10 月にリリースされた PK4.0 にデバイスをアップグレードすることを強くお勧めします。これは、トップ メディア サービスによって実装されている最新の機能をデバイスが利用できるようにする唯一のバージョンです。
長所 | 短所 - 注意ポイント |
---|---|
SL3000 をサポートできます | Server SDK 1.X と互換性がありません |
SecureStop、SecureDelete、MaxResDecode などの最新の機能を実装できます | |
より良いコードベース | |
コンテンツ所有者が要求した新しいライセンス ポリシーを適用できることを確認する |
OEM アップグレード プラン
サービスに問い合わせて、すべてのサービスがサーバー SDK 2.0 以降のバージョンを移行または追加していることを確認します。
サーバー SDK のバージョンを確認します。
サービスに関する考慮事項を繰り返します。 Microsoft からの追加のライセンス要件はなく、追加料金もかかりません 。
サーバー SDK v2.0 以降ベースのライセンス サービスを実行している場合、互換性がある可能性があります。 次のセクションのサービス URL とシナリオは、互換性テストに役立つ場合があります。
サーバー SDK v1 を実行する場合。X ベースのライセンス サーバーでは、サーバー SDK 2.0 以降に基づいて、ライセンス サーバーを移行したり、新しいクライアント用に新しいライセンス サーバーを追加したりできます (最新バージョンをお勧めします)。
Microsoft から PK 4.0 をダウンロードします。
Microsoft のパートナーから、または Microsoft から直接メールを送信してサポートを AskDRM@microsoft.com受けます。
PK 4.0 を実装し、製品をリリースします。
サービスの移行に関するメモ
デバイスの互換性を最適にするには、ライセンス サーバーで最新バージョンの Server SDK が実行されていることを確認します。 最新のサーバー SDK では、使用されている移植キットのバージョンに関係なく、すべての PlayReady クライアントにライセンスを配信できます。 3.0 以降の Device Porting Kit で開発されたクライアントが PlayReady SDK 1.x を使用してライセンス サービスからライセンスを取得しようとすると、ライセンス サービスは汎用サービス固有の SOAP エラーを返します。 サーバーは、チャレンジにクライアント証明書チェーンが見つからないことを示す例外をWindows ログに記録します。
PlayReady サービスを Server SDK 4.0 に移行する
通常、サービスのアップグレードにはコードの変更は含まれませんが、更新されたライブラリの再コンパイルとデプロイだけが含まれます。 一部の非推奨 API により、コードが軽微に変更される場合があります。 ライセンス ハンドラー ライブラリの再コンパイルと展開は、サービスにアクセスするデバイスに対して透過的にする必要があります。
更新されたライセンス ハンドラーをコンパイルしてデプロイするには、次の処理を考慮する必要があります。
プロジェクトでは、再コンパイルする前に、古い PlayReady ライブラリへの参照を削除し、新しいライブラリを参照する必要があります。
新しいサーバー SDK には .NET 4.0 以降が必要です。 ライセンス サービス ハンドラーを 1.52 などの初期バージョンからアップグレードする場合、プロジェクト プロパティでターゲット フレームワークを 4.0 以上に更新する必要があります。
レガシ ハンドラーが、4.0 未満の .NET バージョンを対象としていた他のライブラリを参照している場合は、追加の移行手順が存在する可能性があります。 ただし、.NET ライブラリでは、一般的に問題なく、より少ないバージョンを参照できます。 参照されているライブラリをハンドラーのバージョンに再コンパイルするか、サードパーティコンポーネントのライブラリ更新プログラムを取得する機会を調査する価値があります。
プロジェクト内で参照する必要があるのは Microsoft.Media.Drm.RMCore だけです。 ソリューションをデプロイするときは、他の DLL を Web サイトの bin ディレクトリにデプロイする必要があります。 以前の SDK の場合と同様に、プロジェクト内で参照する必要はありません。
ライセンス サービスによって使用される アプリケーション プール には、.NET CLR バージョン 4.0 以上が必要です。 ライセンス サービスが 2.0 以前を実行していた場合は、4.0 未満の .NET CLR バージョン内で実行されている可能性があります。
最新の PlayReady Server SDK は、Windows Server 2012 以降でのみサポートされています。 ただし、Windows Server 2008 R2 は、Server SDK に問題があることがわかっているわけではありません。
サービスに対するさまざまな Server SDK バージョンのサポート
Microsoft では、リリース後すぐに最新バージョンの SDK に移行することをお勧めします。 ただし、場合によっては、サービスで複数のバージョンの Server SDK を実行することが必要になる場合があります。 これは、簡単に更新されないレガシ サービスとアーカイブ サービスとエンドポイントを維持することが原因である可能性があります。 この場合、サービスは、レガシ サービスをそのままにしたまま、新しいクライアントを更新されたライセンス サービスにポイントできます。 たとえば、サービスには、PlayReady PK 1.2 で構築されたクライアントを実行する多数のレガシ デバイスがエコシステム内にある場合があります。 新しいデバイスは、PlayReady PK 4.0 を使用して開発されています。 新しいクライアントは、Server SDK 2.0 以降で構築されたライセンス サービスを指す必要があります。 レガシ デバイスと新しいデバイスの両方で同じアプリケーション (HTML ベースのアプリ プラットフォームなど) を使用する場合は、クライアントのバージョンを検出するためにロジックをアプリケーションに追加する必要があります。 その後、クライアント アプリケーションは、ライセンス要求を新しいライセンス サービスに転送できます。
推奨される移行は、ライセンス サービスを最新バージョンの Server SDK に更新することです。 これにより、多くのサービスのすべてのデバイスで互換性を提供できます。 互換性を検証するには、サービスをクライアント間でテストする必要があります。
サービスが従来のクライアントとサービスの構成を変更したくない場合は、最新バージョンの SDK にアップグレードされ、最新のクライアントによって使用される 2 つ目のライセンス サービスをホストすることをお勧めします。
サービスが従来のデバイス (PlayReady 1.X) と新しいデバイス (PlayReady 3.0 以降) の両方で 1 つのクライアント アプリケーションを使用する場合、これらのすべてのデバイスにライセンスを提供するには、2 つの PlayReady ライセンス サーバー (PlayReady 1.X および PlayReady 3.0 以降) を操作する必要があります。 アプリケーションには、基になる PlayReady クライアントのバージョンに基づいて適切なライセンス サーバーに要求をルーティングするロジックが含まれている場合があります。または、サービスは、これらのすべてのデバイスからの要求を 1 つの URL 上の適切なライセンス サーバーにルーティングするサービス プロキシを使用できます。
これは、ライセンス チャレンジを調べることでプロキシで行うことができます。 PK バージョンは要素に示されます。
この要素は、次の要素の下にある SOAP チャレンジ内にあります。
<Challenge><LA><CLIENTINFO><CLIENTVERSION>3.1.0.1017</CLIENTVERSION>
従来のライセンス サービスを使用して PK 3.0 以降に基づくクライアントをサポートする
PlayReady Device Porting Kit 3.0 以降で開発されたクライアント デバイスは、Server SDK 2.0 以降で開発された既存のサービスと連携する可能性があります。 前述のように、サービスは PK 3.0 以降のクライアントをテストして互換性を検証する必要があります。
デバイスに SL3000 証明書がある場合、ライセンス ハンドラーのクライアント証明書を介して公開される SecurityLevel は 3000 として報告されます。 これにより、運用環境とテスト デバイスを区別するために特定の SecurityLevel 値を探している場合、一部のライセンス ハンドラーで問題が発生する可能性があります。
SecurityLevels の区別は、ライブ サービスから再生ライセンスを検証するためにテスト デバイスに制限されたコンテンツ アクセスを提供するサービスでは一般的です。 SecurityLevel 2000 として報告されたデバイスにのみ、商用コンテンツの再生ライセンスが配信されます。 サービスはサービス固有の例外をスローし、クライアントで SOAP エラーが発生します。
次の例では、SecurityLevel が実稼働デバイスであることを確認するために、クライアント証明書でチェックされています。 2000 にハードコーディングされているため、セキュリティ レベルが 3000 のデバイスは実稼働デバイスとは見なされません。
次の例では、セキュリティ レベルのチェックを 2000 以上に更新します。 これにより、SL3000 デバイスとの互換性が保証されます。
PlayReady 3.X 以降のサービス機能のサポート
新しいハードウェア DRM セキュリティ レベルに加えて、PlayReady 3.0 以降のリリースでは、さまざまな新機能も導入されました。 これらの新機能を利用するには、サービスはまず、クライアントが PlayReady 3.0 以降の機能に対応しているかどうかを判断する必要があります。 クライアント証明書クラスは、ハンドラー内でポリシーを定義するロジックで役立つ機能のコレクションを返す GetSupportedFeatures メソッドをサポートするようになりました。 クライアントが 3.0 Device Porting Kit を使用して開発された場合、コレクションに SupportedFeature.PlayReady3Features プロパティが含まれます。 クライアントがセキュリティで保護されたクロックを使用しているか、ロールバック対策クロックを使用しているかなど、コレクション内に便利な機能が追加されています。
デバイスが PlayReady 3.0 クライアントであるかどうかを検出する方法の例を次に示します。
検出されると、ハンドラーはセキュリティで保護された停止、リアルタイム ライセンスの有効期限、MaxResDecode などのポリシーを追加できます。
サービスでの SL2000 と SL3000 の両方のサポート
PlayReady では、新しいセキュリティ レベル SL3000 が導入されました。これは、コンプライアンスと堅牢性ルールで定義されている、信頼された実行環境内で実行するために PlayReady ハードウェア セキュリティ レベルを満たしたデバイスによって報告されます。 サービスでは、一部のクライアントが SL2000 として報告され、他のクライアントが SL3000 として報告されるのが一般的です。 たとえば、Windowsでは、Windows 10にアップグレードされた古いデバイスが SL2000 として報告される場合があります。 新しいWindows 10 デバイスでは、DRM が新しいチップに組み込まれている SL3000 として報告されます。
クライアントの課題から報告されたセキュリティ レベルに基づいて異なるポリシーを提供するサービスの例を次に示します。
サービスは、ソフトウェア ベースの DRM クライアントとハードウェア ベースの DRM クライアントの間でポリシーがどのように異なるかを決定します。 これらのポリシーは、スタジオの要件に基づく場合があります。 たとえば、スタジオでは、Ultra-HD または 4K コンテンツをハードウェア ベースの PlayReady DRM をサポートするデバイスに制限することが今後必要になる場合があります。
PlayReady 3.0 以降の解像度に関するポリシーは、いくつかの異なる方法で実現できます。 1 つの方法は、SL2000 ライセンスの MaxResDecode ポリシーを、コンテンツ所有者が提供する許容制限に設定することです。 SL3000 デバイスでは、このポリシー制限は適用されません。 アダプティブ ストリーミング テクノロジに適用されるもう 1 つのオプションは、さまざまな解像度を保護するときに別の KeyID を使用することです。 セキュリティ レベルを検出する場合、サービスはソフトウェア ベースのクライアントに許可されている解決のライセンスのみを提供できます。 SL3000 のセキュリティ レベルを報告するクライアントは、すべての解像度の再生ライセンスを取得します。 PlayReady では、スキーマで複数の Key ID を有効にすることで、この後者のシナリオをサポートするために、新しい DRM ヘッダー (v4.2.0.0 以降) が導入されました。