Compartilhar 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 recente PlayReady Server 4.0.

  • À medida que novos dispositivos continuarem a migração do PlayReady para o hardware (System on Chip), haverá cada vez mais dispositivos reportando a um serviço como o PlayReady 3.0 e superior e o SL3000. Por exemplo, todos os dispositivos Windows 10 agora são reconhecidos como compatíveis com PlayReady 3.0 ou superior. 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 extremos, como a manutenção de serviços de licença legados as-is e dar 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.

Profissionais Contras – Pontos de atenção
Pode dar suporte ao 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
Verifique se novas políticas de licença, conforme solicitado pelos proprietários de conteúdo, podem 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 do servidor 2.0+.

    • Verifique a versão do SDK do servidor.

    • Reitere as considerações para o serviço: sem requisitos de licenciamento adicionais da Microsoft e sem cobranças adicionais.

    • Se eles executarem um serviço de licença baseado em SDK do servidor v2.0+, eles 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 servidor de licenças baseado no SDK do servidor v1.X, eles podem migrar seus servidores de licenças ou adicionar um servidor de licença mais recente para os novos clientes – com base no SDK do servidor 2.0+ (recomenda-se usar a versão mais recente).

  2. Baixe o PK 4.0 da Microsoft.

  3. Obtenha suporte dos parceiros da Microsoft ou diretamente da Microsoft enviando emails 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á fornecer 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 do 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ços de licença de uma versão inicial, como 1.52, o framework de destino precisará ser atualizado nas propriedades do projeto para a versão 4.0 ou superior.

    Estrutura de destino

  • 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.

    Referenciando 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 estava executando 2.0 ou anterior, é provável que ele esteja em execução em uma versão CLR do .NET menor que 4.0.

    Editando o pool de aplicativos

  • O SDK do PlayReady Server mais recente só tem suporte no Windows Server 2012 e superior. O 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 ocorrer devido à manutenção de serviços e pontos de extremidade legados e arquivados que não são facilmente atualizáveis. 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. 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.

Migração recomendada

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.

Hospedando um segundo serviço de licença

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 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.

Configurando um proxy

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

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ças se eles estiverem procurando um valor específico de nível de segurança para diferenciar entre dispositivos de produção e teste.

Diferenciar entre SecurityLevels é comum para serviços que oferecem acesso de conteúdo limitado, permitindo que dispositivos de teste validem licenças de reprodução de um serviço ao vivo. Somente os dispositivos que foram classificados como SecurityLevel 2000 receberiam licenças de reprodução para conteúdo comercial. O serviço geraria uma exceção específica do serviço que resultaria em uma falha SOAP no cliente.

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

Nível de segurança codificado

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

Compatibilidade com dispositivos SL3000

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

Além do novo nível de segurança de DRM de hardware, o PlayReady 3.0 e versões mais altas 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 tiver sido 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 antifraude.

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

Detectando um cliente do PlayReady 3

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 identificados como SL2000 e outros como SL3000. Por exemplo, no Windows, dispositivos mais antigos que foram atualizados para o Windows 10 podem ser relatados como SL2000. Novos dispositivos com Windows 10 serão reportados como SL3000, nos quais 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:

Políticas diferentes com base em 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 de Ultra-HD ou 4K seja limitado a dispositivos que dão suporte ao DRM do PlayReady baseado em hardware.

O PlayReady 3.0 e políticas mais altas em torno de resoluções podem ser realizadas de várias maneiras diferentes. Uma maneira é definir a política MaxResDecode de licenças SL2000 para os limites permitidos fornecidos pelo proprietário do conteúdo. Os dispositivos SL3000 não receberiam essa restrição de política. Outra opção aplicável às tecnologias de streaming adaptáveis é 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 relatasse um nível de segurança de SL3000 receberia 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 PlayReady Server