Поделиться через


Как выполнить миграцию из предыдущих версий PK и сервера

Рекомендации для служб PlayReady

Корпорация Майкрософт рекомендует следующие политики миграции:

  • Убедитесь, что служба обновлена до последней версии пакета SDK PlayReady. Это обеспечит лучшую совместимость на новых и устаревших устройствах. Последние версии пакета SDK для сервера также добавили значительные улучшения производительности и стабильности. Обратите внимание, что для обновления до последней версии PlayReady Server 4.0 дополнительная плата за лицензирование или лицензию не требуется .

  • По мере того как новые устройства продолжают перенос PlayReady на оборудование (SoC), в службе будет больше и больше устройств, отчитываемых как PlayReady 3.0 и более поздних версий, и SL3000. Например, все Windows 10 устройства теперь сообщают как playReady 3.0 и более поздних версий. Службы рекомендуется обновить до последней версии пакета SDK для сервера, чтобы обеспечить совместимость, а также использовать некоторые новые функции.

  • Используйте сведения, приведенные в этом разделе, в качестве руководства по обработке пограничных вариантов, таких как обслуживание устаревших служб лицензий без поддержки новых устройств.

  • Чтобы получить доступ к нашему сайту отзывов для отправки вопросов о миграции, обратитесь askdrm@microsoft.com к лицензированием.

Рекомендации для производителей устройств PlayReady

Настоятельно рекомендуется обновить свои устройства до PK4.0, выпущенной в октябре 2017 года, которая является единственной версией, позволяющей устройствам использовать новейшие функции, реализованные ведущими службами мультимедиа.

Преимущества Минусы — точки внимания
Может поддерживать SL3000 Несовместим с серверным пакетом SDK 1.X
Может реализовать новейшие функции, такие как SecureStop, SecureDelete, MaxResDecode и т. д.
Улучшенная база кода
Убедитесь, что новые политики лицензий, запрашиваемые владельцами содержимого, можно применить

План обновления OEM

  1. Обратитесь к службам и убедитесь, что все они переносят или добавляют серверный пакет SDK 2.0+ версии.

    • Проверьте версию пакета SDK для сервера.

    • Повторите рекомендации по работе со службой: никаких дополнительных требований к лицензированию от Корпорации Майкрософт и никаких дополнительных сборов.

    • Если они запускают службу лицензий на основе пакета SDK для сервера версии 2.0+, они, скорее всего, будут совместимы. URL-адреса и сценарии службы в следующем разделе могут помочь в тестировании совместимости.

    • Если они запускают серверный пакет SDK версии 1. X-сервер лицензирования может перенести сервер лицензирования или добавить новый сервер лицензирования для новых клиентов на основе пакета SDK 2.0 или более поздней версии (рекомендуется использовать последнюю версию).

  2. Скачайте PK 4.0 от Майкрософт.

  3. Получите поддержку от партнеров Корпорации Майкрософт или непосредственно от корпорации Майкрософт, отправив сообщение электронной почты AskDRM@microsoft.com.

  4. Реализуйте PK 4.0 и опубликуйте продукт.

Заметки о миграции для служб

Для обеспечения оптимальной совместимости устройств убедитесь, что сервер лицензирования работает под управлением последней версии пакета SDK сервера. Последний пакет SDK для сервера сможет предоставлять лицензии всем клиентам PlayReady независимо от используемой версии пакета переноса. Если клиент, разработанный с пакетом переноса устройств 3.0 или более поздней версии, пытается получить лицензию от службы лицензирования с помощью пакета SDK PlayReady 1.x, служба лицензий вернет универсальную службу, связанную с ошибкой SOAP. Сервер зановит исключение в журнал Windows, отметив, что проблема отсутствует в цепочке сертификатов клиента.

Перенос службы PlayReady на серверный пакет SDK 4.0

Обновление службы обычно не включает изменения кода, а только перекомпиляцию и развертывание обновленных библиотек. В некоторых случаях могут быть незначительные изменения кода из-за некоторых устаревших API. Перекомпиляция и развертывание библиотеки обработчиков лицензий должны быть прозрачными для устройств, обращаюющихся к службе.

При компиляции и развертывании обновленного обработчика лицензий необходимо учитывать следующее:

  • Перед повторной компиляцией проекту потребуется удалить ссылки на старые библиотеки PlayReady и ссылаться на новые.

  • Для более новых пакетов SDK для сервера требуется .NET 4.0 или более поздней версии. При обновлении обработчика службы лицензий с ранней версии, такой как 1.52, целевая платформа должна быть обновлена в свойствах проекта до версии 4.0 или более поздней.

    Target Framework

  • Если устаревший обработчик ссылается на другие библиотеки, предназначенные для .NET версии менее 4.0, могут быть дополнительные действия по миграции. Однако библиотека .NET может ссылаться на меньшую версию без каких-либо проблем в целом. Стоит изучить возможность перекомпилировать библиотеки, на которые ссылается, в версию обработчика или получить обновления библиотек для сторонних компонентов.

  • В проекте необходимо ссылаться только на Microsoft.Media.Drm.RMCore. При развертывании решения другие библиотеки DLL необходимо развернуть в каталоге bin веб-сайта. На них не нужно ссылаться в рамках проекта, как и в предыдущих пакетах SDK.

    Referencing Microsoft.Media.Drm.RMCore

  • Для пула приложений, используемого службой лицензий, требуется минимальная .NET clR версии 4.0. Если служба лицензий выполнялась под управлением версии 2.0 или более ранней, скорее всего, она работает в .NET версии CLR меньше 4.0.

    Editing the Application Pool

  • Последняя версия пакета SDK для сервера PlayReady поддерживается только в Windows Server 2012 и более поздних версиях. Windows Server 2008 R2, однако, не известно, что возникли проблемы с пакетом SDK для сервера.

Поддержка различных версий пакета 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, или служба может использовать прокси-сервер службы, который направляет запросы, поступающие со всех этих устройств, по одному URL-адресу на соответствующий сервер лицензирования.

Configuring a 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. Эти политики могут быть основаны на требованиях студии. Например, студии может потребоваться в будущем, чтобы содержимое Ultra-HD или 4K было ограничено устройствами, поддерживающими аппаратное управление цифровыми правами PlayReady.

Политики PlayReady 3.0 и более поздних версий, связанные с разрешениями, можно выполнить несколькими разными способами. Одним из способов является установка политики MaxResDecode лицензий SL2000 на допустимые ограничения, предоставляемые владельцем содержимого. Устройства SL3000 не получат это ограничение политики. Другим вариантом, применимым к адаптивным технологиям потоковой передачи, является использование другого KeyID при защите различных разрешений. При обнаружении уровня безопасности служба может предоставить лицензии только для разрешений, разрешенных для программного клиента. Клиент, сообщающий об уровне безопасности SL3000, получит лицензии на воспроизведение для всех разрешений. PlayReady представила новый заголовок DRM (v4.2.0.0 и более поздних версий) для поддержки этого последнего сценария, включив несколько идентификаторов ключей в схеме.

См. также

Версии продукта PlayReady

Тестирование клиентов PlayReady с помощью версий пакета SDK для сервера PlayReady