分享方式:


如何從舊版 PK 和伺服器移轉

PlayReady 服務的建議

Microsoft 建議下列移轉原則:

  • 請確定服務已升級至最新版的 PlayReady SDK。 這可在新的和舊版裝置之間提供最佳相容性。 最新版的伺服器 SDK 也新增了顯著的效能和穩定性改善。 請注意,升級至最新的 PlayReady Server 4.0 不需要額外的授權或授權費用

  • 當新裝置繼續將 PlayReady 移轉至硬體 (SoC) 時,將會有更多裝置向服務回報為 PlayReady 3.0 和更新版本,以及 SL3000。 例如,所有Windows 10裝置現在都會回報為 PlayReady 3.0 和更新版本的裝置。 我們鼓勵服務升級至最新版的伺服器 SDK,以維持相容性,以及利用一些新功能。

  • 使用本主題中提供的資訊作為處理邊緣案例的指南,例如在支援新裝置時維護舊版授權服務。

  • 授權者可以連絡 askdrm@microsoft.com 以取得意見反應網站的存取權,以提交移轉問題。

適用于 PlayReady 裝置製造商的建議

強烈建議 OEM 將其裝置升級至 2017 年 10 月發行的 PK4.0,這是唯一允許裝置利用熱門媒體服務所實作的最新功能版本。

優點 缺點 - 注意點
可支援 SL3000 與伺服器 SDK 1.X 不相容
可以實作 SecureStop、SecureDelete、MaxResDecode 等最新功能
更好的程式碼基底
確保可以強制執行內容擁有者所要求的新授權原則

OEM 升級方案

  1. 請連絡您的服務,並確定它們全都移轉或新增伺服器 SDK 2.0+ 版本。

    • 確認其伺服器 SDK 版本。

    • 服務有重複考慮: Microsoft 沒有額外的授權需求,也不需要額外費用

    • 如果他們執行伺服器 SDK v2.0+ 型授權服務,它們可能會相容。 下一節中的服務 URL 和案例可協助進行相容性測試。

    • 如果他們執行伺服器 SDK v1。X 型授權伺服器,他們可以移轉其授權伺服器,或為新的用戶端新增較新的授權伺服器 - 建議使用伺服器 SDK 2.0+ (最新版本) 。

  2. 從 Microsoft 下載 PK 4.0。

  3. 透過傳送電子郵件給 AskDRM@microsoft.com ,從 Microsoft 取得 Microsoft 合作夥伴或直接從 Microsoft 取得支援。

  4. 實作 PK 4.0 併發行您的產品。

服務的移轉注意事項

為了獲得最佳裝置相容性,請確定授權伺服器正在執行最新版的伺服器 SDK。 最新的伺服器 SDK 將能夠將授權傳遞給所有 PlayReady 用戶端,而不論使用的移植套件版本為何。 如果使用 3.0 或更新版本的裝置移植套件所開發的用戶端嘗試使用 PlayReady SDK 1.x 從授權服務取得授權,授權服務將會傳回一般服務特定的 SOAP 錯誤。 伺服器會將例外狀況記錄到Windows記錄,指出挑戰遺漏用戶端憑證鏈結。

將 PlayReady 服務移轉至伺服器 SDK 4.0

服務升級通常不會涉及任何程式碼變更,但只會重新編譯和部署更新的程式庫。 在某些情況下,可能會因為一些已被取代的 API 而發生次要程式碼變更。 存取服務的裝置應該透明地重新編譯和部署授權處理常式程式庫。

編譯及部署更新的授權處理常式必須考慮下列事項:

  • 專案必須移除舊 PlayReady 程式庫的參考,並在重新編譯之前參考新的程式庫。

  • 較新的伺服器 SDK 需要 .NET 4.0 或更新版本。 從舊版例如 1.52 升級授權服務處理常式時,必須在專案屬性中將目標 Framework 更新為 4.0 或更新版本。

    Target Framework

  • 如果舊版處理常式參考以小於 4.0 版的 .NET 版本為目標的其他程式庫,可能會有額外的移轉步驟。 不過,.NET 程式庫可以參考較不一般的版本, 值得調查將參考的程式庫重新編譯至處理常式版本,或取得協力廠商元件的程式庫更新的機會。

  • 專案內只需要參考 Microsoft.Media.Drm.RMCore。 部署解決方案時,必須在網站的 bin 目錄中部署其他 DLL。 它們不需要在專案中參考,就如同先前 SDK 的情況一樣。

    Referencing Microsoft.Media.Drm.RMCore

  • 授權服務所使用的 應用程式集 區至少需要 .NET CLR 4.0 版。 如果授權服務執行 2.0 或更早版本,則可能是在小於 4.0 的 .NET CLR 版本中執行。

    Editing the Application Pool

  • 最新的 PlayReady Server SDK 僅支援Windows Server 2012和更新版本。 不過,Windows Server 2008 R2 不知道伺服器 SDK 有任何問題。

支援服務的不同伺服器 SDK 版本

Microsoft 建議您在發行 SDK 之後立即移轉至最新版本的 SDK。 不過,在某些情況下,服務可能會想要執行多個版本的伺服器 SDK。 這可能是因為維護舊版和封存服務與端點而無法輕易更新。 在此情況下,服務可以將新的用戶端指向更新的授權服務,同時讓舊版服務保持不變。 例如,服務在其生態系統中可能有數個舊版裝置,執行以 PlayReady PK 1.2 建置的用戶端。 其新裝置是使用 PlayReady PK 4.0 開發。 新的用戶端必須指向以伺服器 SDK 2.0 或更新版本建置的授權服務。 如果舊版和新裝置都使用相同的應用程式 (,例如 HTML 應用程式平臺) ,則必須將邏輯新增至應用程式,以偵測用戶端的版本。 用戶端應用程式接著可以將授權要求導向至較新的授權服務。

建議的移轉是將授權服務更新為最新版的伺服器 SDK。 這可為許多服務提供所有裝置的相容性。 服務必須跨用戶端進行測試,才能驗證相容性。

Recommended Migration

如果服務不想變更舊版用戶端和服務組態,建議裝載第二個已升級至最新版 SDK 的授權服務,並由新式用戶端使用。

Hosting a Second License Service

如果服務在舊版裝置上使用單一用戶端應用程式, (PlayReady 1.X) 和較新的裝置 (PlayReady 3.0 或更高版本) 它必須操作兩個 PlayReady 授權伺服器, (PlayReady 1.X 和 PlayReady 3.0 或更新版本) ,才能為所有這些裝置提供授權。 應用程式可能包含根據基礎 PlayReady 用戶端版本將要求路由傳送至正確授權伺服器的邏輯,或者服務可能會使用服務 Proxy,將來自單一 URL 上所有裝置的要求路由傳送至適當的授權伺服器。

Configuring a Proxy

這可以在 Proxy 中藉由檢查授權挑戰來完成。 PK 版本將會在 元素中加以記錄。

元素位於下列元素下的 SOAP 挑戰內:

<Challenge><LA><CLIENTINFO><CLIENTVERSION>3.1.0.1017</CLIENTVERSION> 

使用舊版授權服務支援以 PK 3.0 或更高版本為基礎的用戶端

使用 PlayReady 裝置移植套件 3.0 或更高版本開發的用戶端裝置,可能會與使用伺服器 SDK 2.0 或更高版本開發的現有服務搭配使用。 如上所述,服務必須測試 PK 3.0 或更新版本的用戶端,以驗證相容性。

如果裝置有 SL3000 憑證,則透過授權處理常式中用戶端憑證公開的 SecurityLevel 會回報為 3000。 如果某些授權處理常式正在尋找特定的 SecurityLevel 值來區分生產與測試裝置,這可能會造成問題。

在 SecurityLevels 之間區分是常見的服務,這些服務提供有限的測試裝置內容存取權,以驗證來自即時服務的播放授權。 只有回報為 SecurityLevel 2000 的裝置才會供應商業內容的播放授權。 服務會擲回會導致用戶端發生 SOAP 錯誤的服務特定例外狀況。

在下列範例中,SecurityLevel 會簽入用戶端憑證,以確保它是生產裝置。 由於其已硬式編碼為 2000,因此安全性層級為 3000 的裝置不會被視為生產裝置。

Security Level Hardcoded

下一個範例會將安全性層級的檢查更新為是否大於或等於 2000。 這可確保與 SL3000 裝置相容。

Compatibility with SL3000 Devices

支援適用于服務的 PlayReady 3.X 和更新版本功能

除了新的硬體 DRM 安全性層級之外,PlayReady 3.0 和更新版本也引進了各種新功能。 為了利用這些新功能,服務必須先判斷用戶端是否能夠使用 PlayReady 3.0 和更新版本功能。 用戶端憑證類別現在支援 GetSupportedFeatures 方法,此方法會傳回功能集合,以協助定義處理常式內的原則邏輯。 如果用戶端是使用 3.0 裝置移植套件進行開發,則會在集合中具有 SupportedFeature.PlayReady3Features 屬性。 集合中還有其他有用的功能,例如用戶端是否使用安全時鐘或反復原時鐘。

以下是如何偵測裝置是否為 PlayReady 3.0 用戶端的範例。

Detecting a PlayReady 3 client

偵測到處理程式之後,即可新增安全停止、即時授權到期和 MaxResDecode 等原則。

支援服務中的 SL2000 和 SL3000

PlayReady 引進了新的安全性層級 SL3000,由符合 PlayReady 硬體安全性等級的裝置回報,可在信任的執行環境中執行,如合規性與健全性規則中所定義。 服務通常會讓某些用戶端報告為 SL2000,而其他用戶端則報告為 SL3000。 例如,在Windows中,升級為 Windows 10 的較舊裝置可能會回報為 SL2000。 新的Windows 10裝置會回報為 SL3000,其中 DRM 已併入較新的晶片。

以下是根據來自用戶端挑戰的報告安全性層級,提供不同原則的服務範例:

Different Policies Based on SecurityLevel

服務會決定原則在軟體型 DRM 用戶端與硬體型 DRM 用戶端之間應該有何不同。 這些原則可能是由 Studio 需求所驅動。 例如,Studio 未來可能需要 Ultra-HD 或 4K 內容受限於支援硬體型 PlayReady DRM 的裝置。

PlayReady 3.0 和更高原則的解決方式可以透過幾種不同方式來完成。 其中一種方式是將 SL2000 授權的 MaxResDecode 原則設定為內容擁有者所提供的允許限制。 SL3000 裝置不會取得此原則限制。 另一個適用于調適型串流技術的選項是保護各種解析度時使用不同的 KeyID。 偵測安全性層級時,服務只能提供軟體型用戶端所允許解決方案的授權。 回報 SL3000 安全性層級的用戶端會取得所有解析度的播放授權。 PlayReady 引進了新的 DRM 標頭, (v4.2.0.0 和更新版本) ,藉由在架構中啟用多個 KeyID 來支援後者案例。

另請參閱

PlayReady 產品版本

如何使用 PlayReady Server SDK 的版本測試 PlayReady 用戶端