Partilhar via


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

Recomendações para os Serviços PlayReady

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

  • Certifique-se de que um serviço seja atualizado para a versão mais recente do SDK PlayReady. Isso proporcionará a melhor compatibilidade entre dispositivos novos e legados. As versões recentes do SDK do servidor também adicionaram melhorias significativas de desempenho e estabilidade. Observe que nenhuma licença adicional ou taxas de licença são necessárias para atualizar para o mais novo PlayReady Server 4.0.

  • À medida que novos dispositivos continuam a migração do PlayReady para o hardware (SoC), haverá cada vez mais dispositivos comunicando-se com um serviço como PlayReady 3.0 e versões posteriores, e SL3000. Por exemplo, todos os dispositivos Windows 10 agora são reportados 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.

  • Utilize as informações fornecidas neste tópico como um guia para lidar com casos extremos, como a manutenção de serviços de licenciamento legados as-is enquanto oferece suporte a novos dispositivos.

  • Os licenciados podem contactar diretamente askdrm@microsoft.com para obter acesso ao nosso site para comentários e enviar perguntas sobre migração.

Recomendações para fabricantes de dispositivos PlayReady

É altamente recomendável que os OEMs atualizem seus dispositivos para 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 suportar SL3000 Não compatível com o Server SDK 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 aplicadas

Plano de atualização OEM

  1. Entre em contato com seus serviços e certifique-se de que todos eles migrem ou adicionem uma versão do SDK 2.0+ do servidor.

    • Verifique a versão do SDK do servidor.

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

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

    • Se eles executarem um servidor de licenças baseado no SDK de servidor v1.X, podem migrar o seu servidor de licenças ou adicionar um servidor de licenças mais recente para os novos clientes, baseado no SDK de 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 um e-mail para AskDRM@microsoft.com.

  4. Implemente PK 4.0 e libere seu produto.

Notas de migração para serviços

Para uma compatibilidade ideal do dispositivo, verifique se o servidor de licenças está executando a versão mais recente do SDK do servidor. O SDK de servidor mais recente será capaz de fornecer licenças para todos os clientes PlayReady, independentemente da versão do Porting Kit usada. Se um Cliente desenvolvido com o Kit de Portabilidade de Dispositivos 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 registará uma exceção no log do Windows, indicando que a cadeia de certificados do cliente estava ausente no desafio.

Migrando um serviço PlayReady para o Server SDK 4.0

Uma atualização de serviço geralmente não envolve 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 obsoletas. A recompilação e a implantação da biblioteca do manipulador de licenças devem ser transparentes para os 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 fazer referência às novas antes de recompilar.

  • Os SDKs de servidor mais recentes exigem .NET 4.0 ou superior. Ao atualizar o manipulador de serviço de licenças de uma versão inicial, como a 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 a referenciar outras bibliotecas que estavam a apontar para uma versão do .NET anterior à 4.0, pode haver etapas de migração adicionais. No entanto, uma biblioteca .NET pode fazer referência a uma versão menor sem problemas em geral. Valeria 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 dentro do 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 era o caso com SDKs anteriores.

    Fazendo referência a 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 sendo executado em uma versão .NET CLR menor que 4.0.

    Editando o pool de aplicativos

  • O SDK mais recente do PlayReady Server só é suportado no Windows Server 2012 e superior. No entanto, o Windows Server 2008 R2 não é conhecido por ter problemas com o SDK do Servidor.

Suportando 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 arquivamento e pontos de extremidade que não são facilmente atualizados. 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 dentro de seu ecossistema executando um cliente criado com 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 Server SDK 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 detetar 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á ser testado 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 tenha sido atualizado para a versão mais recente do SDK e seja 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 para todos esses dispositivos. O aplicativo pode incluir a lógica para rotear as solicitações para o servidor de licenças 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ças apropriado.

Configurando um proxy

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

O elemento está localizado dentro do desafio SOAP sob o seguinte elemento:

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

Suporte a clientes baseados em PK 3.0 ou superior com serviços de licença legados

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

Se o dispositivo tiver um certificado SL3000, o SecurityLevel exposto através do certificado do cliente no manipulador de licenças será relatado como 3000. Isso pode 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 de teste.

A diferenciação entre *SecurityLevels* é comum para serviços que oferecem acesso limitado a conteúdos a dispositivos de teste, com o intuito de validar licenças de reprodução de um serviço ao vivo. Apenas os dispositivos reportados 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 é um dispositivo de produção. Uma vez que foi codificado até 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 do nível de segurança para saber se ele é maior ou igual a 2000. Isso garantirá a compatibilidade com dispositivos SL3000.

Compatibilidade com dispositivos SL3000

Suporte ao PlayReady 3.X e funcionalidades das versões 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 PlayReady 3.0 e recursos superiores. A classe de certificado de cliente agora oferece suporte a um método GetSupportedFeatures que retornará uma coleção de recursos para ajudar na lógica de definição de políticas no manipulador. Se o cliente foi desenvolvido com o Kit de Portabilidade de Dispositivo 3.0, ele terá a propriedade SupportedFeature.PlayReady3Features na coleção. Existem funcionalidades adicionais úteis na coleção, tais como verificar se o cliente está a usar um relógio seguro ou um relógio anti-retrocesso.

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

Detetando um cliente PlayReady 3

Uma vez detetado, o manipulador pode adicionar políticas como Secure Stop, expiração de licença em tempo real e MaxResDecode, por exemplo.

Suporte em serviços para SL2000 e SL3000

A PlayReady introduziu um novo nível de segurança SL3000 que é relatado por dispositivos que atenderam ao nível de segurança de hardware PlayReady para execução em um ambiente de execução confiável, conforme definido nas Regras de Conformidade e Robustez. Será comum que alguns clientes relatem como SL2000 e outros como SL3000. Por exemplo, no Windows, dispositivos mais antigos que atualizaram para o Windows 10 podem ser identificados como SL2000. Novos dispositivos com Windows 10 vão apresentar-se como SL3000, nos quais o DRM foi incorporado nos 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:

Diferentes políticas baseadas no nível de segurança

Um serviço determinará como as políticas devem diferir entre clientes DRM baseados em software e clientes DRM baseados em hardware. Essas políticas podem ser orientadas por 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 suportam DRM PlayReady baseado em hardware.

PlayReady 3.0 e versões superiores com políticas relacionadas a resoluções podem ser realizadas de duas 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 obteriam 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 detetar 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 relatando 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 suportar este último cenário, ativando vários KeyIDs no esquema.

Ver também

Versões do produto PlayReady

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