PlayReady 服務的建議
Microsoft建議下列移轉原則:
請確定服務已升級至最新版的 PlayReady SDK。 這會在新的和舊版裝置之間提供最佳相容性。 最新版的伺服器 SDK 也新增了顯著的效能和穩定性改善。 請注意,升級至最新的 PlayReady Server 4.0 不需要額外的授權或授權費用 。
隨著新裝置繼續將 PlayReady 移轉至硬體 (SoC),將會有越來越多的裝置向服務回報為 PlayReady 3.0 和更新版本,以及 SL3000。 例如,所有 Windows 10 裝置現在都會回報為 PlayReady 3.0 和更新版本的裝置。 建議您將服務升級至最新版的伺服器 SDK,以維持相容性,並利用一些新功能。
使用本主題中提供的資訊作為處理邊緣案例的指南,例如維護舊版授權服務 as-is,同時支援新的裝置。
持牌者可以聯絡 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。
您可以透過傳送電子郵件給 AskDRM@microsoft.com,向 Microsoft 的合作夥伴或直接向 Microsoft 取得支援。
實作 PK 4.0 併發行您的產品。
服務移轉注意事項
為了獲得最佳裝置相容性,請確定授權伺服器正在執行最新版的伺服器 SDK。 最新的伺服器 SDK 將能夠將授權傳遞給所有 PlayReady 用戶端,而不論使用的移植套件版本為何。 如果使用 3.0 或更高版本裝置移植套件開發的用戶端嘗試使用 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。 部署解決方案時,必須在網站的 bin 目錄中部署其他 DLL。 這些專案不需要在項目中參考,如同先前 SDK 的情況一樣。
授權服務所使用的 應用程式集 區至少需要 4.0 版的 .NET CLR。 如果授權服務執行 2.0 或更早版本,它很可能在小於 4.0 的 .NET CLR 版本中執行。
Windows Server 2012 和更新版本才支援最新的 PlayReady Server SDK。 不過,Windows Server 2008 R2 並不知道伺服器 SDK 有任何問題。
支援服務的不同伺服器 SDK 版本
Microsoft建議您在發行 SDK 后不久移轉至最新版本的 SDK。 不過,在某些情況下,服務可能會想要執行多個版本的伺服器 SDK。 這可能是因為維護不容易更新的舊版和封存服務和端點。 在此情況下,服務可以將新用戶端指向更新的授權服務,同時讓舊版服務保持不變。 例如,服務在其生態系統中可能有一些舊版裝置,執行以 PlayReady PK 1.2 建置的用戶端。 其新裝置是使用 PlayReady PK 4.0 開發。 新的客戶端必須指向以 Server SDK 2.0 或更新版本所建置的授權服務。 如果舊版和新裝置都使用相同的應用程式(例如 HTML 型應用程式平臺),則必須將邏輯新增至應用程式,才能偵測用戶端的版本。 用戶端應用程式接著可以將授權要求導向至較新的授權服務。
建議的移轉是將授權服務更新為最新版的伺服器 SDK。 這可為許多服務提供所有裝置的相容性。 服務必須跨客戶端進行測試,才能驗證相容性。
如果服務不想變更舊版用戶端和服務組態,建議裝載已升級至最新版 SDK 的第二個授權服務,並由新式用戶端使用。
如果服務在舊版裝置上使用單一用戶端應用程式(PlayReady 1.X)和較新的裝置(PlayReady 3.0 或更高版本),它必須作兩部 PlayReady 授權伺服器(PlayReady 1.X 和 PlayReady 3.0 或更高版本),才能提供所有這些裝置的授權。 應用程式可能包含根據基礎 PlayReady 用戶端版本將要求路由傳送至正確授權伺服器的邏輯,或者服務可能會使用服務 Proxy,將來自單一 URL 上所有裝置的要求路由傳送至適當的授權伺服器。
這可以在 Proxy 中完成,方法是檢查授權挑戰。 PK 版本將會在 <CLIENTVERSION> 元素裡被指出。
該元素位於 SOAP 挑戰中的下列元素之下:
<Challenge><LA><CLIENTINFO><CLIENTVERSION>3.1.0.1017</CLIENTVERSION>
為基於 PK 3.0 或更高版本的用戶端提供舊版授權服務支援
使用 PlayReady 裝置移植套件 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 裝置移植套件所開發,則會在集合中具有 SupportedFeature.PlayReady3Features 屬性。 集錦中還有其他實用的功能,例如用戶端是否使用安全時鐘或防倒退時鐘。
以下是如何偵測裝置是否為 PlayReady 3.0 用戶端的範例。
偵測到處理程序之後,可以新增原則,例如安全停止、即時授權到期和 MaxResDecode。
支持服務中的 SL2000 和 SL3000
PlayReady 引進了新的安全性層級 SL3000,由符合 PlayReady 硬體安全性層級的裝置報告,可在信任的執行環境中執行,如合規性和健全性規則中所定義。 服務通常會有一些客戶端報告為 SL2000,而其他用戶端則報告為 SL3000。 例如,在 Windows 中,已升級至 Windows 10 的舊版裝置可能會回報為 SL2000。 新的 Windows 10 裝置將報告為 SL3000,其中的 DRM 已被整合到較新的晶片中。
以下是一個根據客戶端挑戰所報告的安全等級,提供不同政策的服務範例:
服務將決定原則在軟體型DRM用戶端與硬體型DRM客戶端之間應有何差異。 這些原則可能由 Studio 需求所驅動。 例如,工作室未來可能需要 Ultra-HD 或 4K 內容受限於支援硬體型 PlayReady DRM 的裝置。
PlayReady 3.0 和更高版本的解析度策略可以透過幾種不同的方式實現。 其中一種方式是將 SL2000 授權的 MaxResDecode 原則設定為內容擁有者所提供的允許限制。 SL3000 裝置不會取得此原則限制。 另一個適用於調適性串流技術的選項是保護各種解析度時使用不同的 KeyID。 偵測安全性等級時,服務只能提供軟體型用戶端所允許之解決方案的授權。 報告安全性層級為 SL3000 的客戶端將獲得所有解析度的播放授權。 PlayReady 引進了新的DRM標頭(v4.2.0.0和更新版本),藉由在架構中啟用多個KeyID來支援後者案例。