Partilhar via


Como migrar de versões anteriores do PK e do servidor

Recomendações para o PlayReady Services

A Microsoft recomenda as seguintes políticas de migração:

  • Verifique se um serviço foi atualizado para a versão mais recente do SDK do PlayReady. Isso fornecerá a melhor compatibilidade entre dispositivos novos e herdados. As versões recentes do SDK do Servidor também adicionaram melhorias significativas de desempenho e estabilidade. Observe que nenhuma taxa adicional de licenciamento ou licença é necessária para atualizar para o mais novo PlayReady Server 4.0.

  • À medida que novos dispositivos continuarem a migração do PlayReady para o soC (hardware), haverá cada vez mais dispositivos relatando para um serviço como PlayReady 3.0 e superior e SL3000. Por exemplo, todos os dispositivos Windows 10 agora relatam como dispositivos PlayReady 3.0 e superiores. Os serviços são incentivados a atualizar para a versão mais recente do SDK do servidor para manter a compatibilidade, bem como aproveitar alguns dos novos recursos.

  • Use as informações fornecidas neste tópico como um guia para lidar com casos de borda, como a manutenção de serviços de licença herdados como está, ao mesmo tempo em que dá suporte a novos dispositivos.

  • Os licenciados podem entrar em contato askdrm@microsoft.com para obter acesso ao nosso site de comentários para enviar perguntas de migração.

Recomendações para fabricantes de dispositivos PlayReady

É altamente recomendável que os OEMs atualizem seus dispositivos para o PK4.0 lançado em outubro de 2017, que é a única versão que permite que os dispositivos aproveitem as funcionalidades mais recentes que estão sendo implementadas pelos principais serviços de mídia.

Prós Contras – Pontos de atenção
Pode dar suporte a SL3000 Não compatível com o SDK do Servidor 1.X
Pode implementar funcionalidades mais recentes, como SecureStop, SecureDelete, MaxResDecode e assim por diante
Melhor base de código
Garantir que novas políticas de licença, conforme solicitado pelos proprietários de conteúdo, possam ser impostas

Plano de Atualização do OEM

  1. Entre em contato com seus serviços e verifique se todos eles migram ou adicionam uma versão do SDK 2.0+ do servidor.

    • Verifique a versão do SDK do servidor.

    • Reitere considerações para o serviço: nenhum requisito adicional de licenciamento da Microsoft e nenhuma taxa adicional .

    • Se eles executarem um serviço de licença baseado no SDK do servidor v2.0+, provavelmente serão compatíveis. As URLs de serviço e os cenários na próxima seção podem ajudar no teste de compatibilidade.

    • Se eles executarem um SDK do servidor v1. Servidor de licenças baseado em X, ele pode migrar seu servidor de licença ou adicionar um servidor de licença mais recente para os novos clientes – com base no SDK do servidor 2.0+ (a versão mais recente é recomendada).

  2. Baixe o PK 4.0 da Microsoft.

  3. Obtenha suporte dos parceiros da Microsoft ou diretamente da Microsoft enviando email para AskDRM@microsoft.com.

  4. Implemente o PK 4.0 e libere seu produto.

Notas sobre migrações para serviços

Para obter a compatibilidade ideal do dispositivo, verifique se o servidor de licença está executando a versão mais recente do SDK do Servidor. O SDK do Servidor mais recente poderá entregar licenças a todos os clientes do PlayReady, independentemente da versão do Kit de Portabilidade usada. Se um cliente desenvolvido com o Kit de Portabilidade de Dispositivo 3.0 ou superior tentar obter uma licença de um serviço de licença usando o PlayReady SDK 1.x, o serviço de licença retornará uma falha SOAP específica do serviço genérico. O servidor registrará uma exceção no log de Windows observando que o desafio estava faltando na cadeia de certificados do cliente.

Migrando um serviço PlayReady para o SDK do Servidor 4.0

Uma atualização de serviço geralmente não envolverá nenhuma alteração de código, mas apenas uma recompilação e implantação das bibliotecas atualizadas. Em alguns casos, pode haver pequenas alterações de código devido a algumas APIs preteridas. A recompilação e a implantação da biblioteca do manipulador de licenças devem ser transparentes para dispositivos que acessam o serviço.

Compilar e implantar um manipulador de licença atualizado precisará levar em conta o seguinte:

  • O projeto precisará remover referências às bibliotecas antigas do PlayReady e referenciar as novas antes da recompilação.

  • Os SDKs de servidor mais recentes exigem .NET 4.0 ou superior. Ao atualizar o manipulador de serviço de licença de uma versão inicial, como 1.52, a estrutura de destino precisará ser atualizada nas propriedades do projeto para a 4.0 ou superior.

    Target Framework

  • Se o manipulador herdado estiver fazendo referência a outras bibliotecas direcionadas a uma versão do .NET menor que 4.0, poderá haver etapas de migração adicionais. No entanto, uma biblioteca .NET pode referenciar uma versão menor sem problemas em geral. Vale a pena investigar a oportunidade de recompilar bibliotecas referenciadas para a versão do manipulador ou adquirir atualizações de biblioteca para componentes de terceiros.

  • Somente Microsoft.Media.Drm.RMCore precisa ser referenciado no projeto. Ao implantar uma solução, as outras DLLs precisam ser implantadas no diretório bin do site. Eles não precisam ser referenciados dentro do projeto, como foi o caso de SDKs anteriores.

    Referencing Microsoft.Media.Drm.RMCore

  • Uma versão mínima do .NET CLR 4.0 é necessária para o Pool de Aplicativos utilizado pelo serviço de licença. Se o serviço de licença estivesse executando 2.0 ou anterior, é provável que ele esteja em execução em uma versão clr do .NET menor que 4.0.

    Editing the Application Pool

  • O SDK mais recente do PlayReady Server só tem suporte em Windows Server 2012 e maior. Windows Server 2008 R2, no entanto, não é conhecido por ter problemas com o SDK do servidor.

Suporte a diferentes versões do SDK do Servidor para um Serviço

A Microsoft recomenda que você migre para a versão mais recente do SDK logo após seu lançamento. Em alguns casos, no entanto, um serviço pode querer executar várias versões do SDK do Servidor. Isso pode ser devido à manutenção de serviços herdados e de arquivos e pontos de extremidade que não são atualizados facilmente. Nesse caso, um serviço pode apontar novos clientes para um serviço de licença atualizado, deixando o serviço herdado intocado. Por exemplo, um serviço pode ter vários dispositivos herdados em seu ecossistema executando um cliente criado com o PlayReady PK 1.2. Seus novos dispositivos são desenvolvidos usando o PlayReady PK 4.0. O novo cliente precisaria apontar para um serviço de licença criado com o SDK do Servidor 2.0 ou superior. Se os dispositivos herdados e novos usarem o mesmo aplicativo (como uma plataforma de aplicativo baseada em HTML), a lógica precisará ser adicionada ao aplicativo para detectar a versão do cliente. Em seguida, o aplicativo cliente pode direcionar solicitações de licença para um serviço de licença mais recente.

A migração recomendada é atualizar o serviço de licença para a versão mais recente do SDK do Servidor. Isso pode fornecer compatibilidade em todos os dispositivos para muitos serviços. Um serviço precisará testar entre clientes para validar a compatibilidade.

Recommended Migration

Se um serviço não quiser fazer alterações em um cliente herdado e configuração de serviço, a recomendação é hospedar um segundo serviço de licença que foi atualizado para a versão mais recente do SDK e é utilizado por clientes modernos.

Hosting a Second License Service

Se um serviço usa um único aplicativo cliente em dispositivos herdados (PlayReady 1.X) e dispositivos mais recentes (PlayReady 3.0 ou superior), ele precisa operar dois Servidores de Licença do PlayReady (PlayReady 1.X e PlayReady 3.0 ou superior) para fornecer licenças a todos esses dispositivos. O aplicativo pode incluir a lógica para rotear as solicitações para o servidor de licença correto com base na versão do cliente PlayReady subjacente, ou o serviço pode usar um proxy de serviço que roteia as solicitações provenientes de todos esses dispositivos em uma única URL para o servidor de licença apropriado.

Configuring a Proxy

Isso pode ser feito em um proxy inspecionando o desafio de licença. A versão do PK será anotada no elemento.

O elemento está localizado dentro do desafio SOAP no seguinte elemento:

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

Suporte a clientes com base no PK 3.0 ou superior com serviços de licença herdados

Um dispositivo cliente desenvolvido com o PlayReady Device Porting Kit 3.0 ou superior provavelmente funcionará com serviços existentes desenvolvidos com o SDK do Servidor 2.0 ou superior. Conforme observado acima, um serviço precisa testar clientes PK 3.0 ou superiores para validar a compatibilidade.

Se o dispositivo tiver um certificado SL3000, o SecurityLevel exposto por meio do certificado do cliente no manipulador de licenças será relatado como 3000. Isso pode possivelmente causar problemas com alguns manipuladores de licença se eles estiverem procurando um valor SecurityLevel específico para diferenciar entre dispositivos de produção e teste.

A diferenciação entre SecurityLevels é comum para serviços que fornecem acesso limitado a conteúdo para dispositivos de teste validarem licenças de reprodução de um serviço ao vivo. Somente os dispositivos relatados como SecurityLevel 2000 teriam licenças de reprodução entregues para conteúdo comercial. O serviço lançaria uma exceção específica do serviço que resultaria em uma falha SOAP no cliente.

No exemplo abaixo, o SecurityLevel está sendo verificado no certificado do cliente para garantir que ele seja um dispositivo de produção. Como ele foi codificado como 2000, os dispositivos com o nível de segurança 3000 não serão vistos como dispositivos de produção.

Security Level Hardcoded

Este próximo exemplo atualiza a verificação do nível de segurança para saber se ele é maior ou igual a 2000. Isso garantirá a compatibilidade com dispositivos SL3000.

Compatibility with SL3000 Devices

Suporte ao PlayReady 3.X e recursos superiores para serviços

Além do novo nível de segurança drm de hardware, o PlayReady 3.0 e versões superiores também introduziram uma variedade de novos recursos. Para aproveitar esses novos recursos, o serviço precisará primeiro determinar se o cliente é capaz de usar o PlayReady 3.0 e recursos superiores. A classe de certificado do cliente agora dá suporte a um método GetSupportedFeatures que retornará uma coleção de recursos para ajudar na lógica de definição de políticas dentro do manipulador. Se o cliente foi desenvolvido com o Kit de Portabilidade de Dispositivo 3.0, ele terá a propriedade SupportedFeature.PlayReady3Features na coleção. Há recursos úteis adicionais na coleção, como se o cliente está usando um relógio seguro ou um relógio anti-reversão.

Aqui está um exemplo de como detectar se o dispositivo é um cliente PlayReady 3.0.

Detecting a PlayReady 3 client

Depois de detectado, o manipulador pode adicionar políticas como Parada Segura, Expiração de licença em tempo real e MaxResDecode, por exemplo.

Suporte ao SL2000 e ao SL3000 em serviços

O PlayReady introduziu um novo nível de segurança SL3000 que é relatado por dispositivos que atenderam ao nível de segurança de hardware do PlayReady para execução em um ambiente de execução confiável, conforme definido nas Regras de Conformidade e Robustez. Será comum que os serviços tenham alguns clientes relatando como SL2000 e outros relatórios como SL3000. Por exemplo, em Windows, dispositivos mais antigos que foram atualizados para Windows 10 podem relatar como SL2000. Novos dispositivos Windows 10 serão relatados como SL3000 em que o DRM foi incorporado aos chips mais recentes.

Aqui está um exemplo de um serviço que fornece políticas diferentes com base no nível de segurança relatado do desafio do cliente:

Different Policies Based on SecurityLevel

Um serviço determinará como as políticas devem ser diferentes entre clientes DRM baseados em software e clientes DRM baseados em hardware. Essas políticas podem ser orientadas pelos requisitos do estúdio. Por exemplo, um estúdio pode exigir no futuro que o conteúdo Ultra-HD ou 4K seja limitado a dispositivos que dão suporte ao DRM PlayReady baseado em hardware.

O PlayReady 3.0 e políticas mais altas em torno de resoluções podem ser realizadas de algumas maneiras diferentes. Uma maneira é definir a política MaxResDecode das licenças SL2000 para os limites permitidos fornecidos pelo proprietário do conteúdo. Os dispositivos SL3000 não obteriam essa restrição de política. Outra opção aplicável às tecnologias de streaming adaptável é usar um KeyID diferente ao proteger as várias resoluções. Ao detectar o nível de segurança, um serviço só pode fornecer licenças para as resoluções permitidas para um cliente baseado em software. Um cliente que relata um nível de segurança de SL3000 obteria licenças de reprodução para todas as resoluções. O PlayReady introduziu um novo cabeçalho DRM (v4.2.0.0 e superior) para dar suporte a esse último cenário, habilitando vários KeyIDs no esquema.

Consulte Também

Versões do produto PlayReady

Como testar clientes PlayReady com versões do SDK do Servidor PlayReady