Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Visão geral
O Ambiente de Teste do PlayReady fornece vários servidores com versão para dar suporte a testes em diferentes versões do PlayReady e conjuntos de recursos. Cada servidor com versão implementa recursos específicos do PlayReady e requisitos de conformidade, permitindo testes abrangentes de implementações de cliente.
Versões do servidor disponíveis
Servidores de Teste do PlayReady 1.x
Servidores herdados para testes de compatibilidade do PlayReady 1.0-1.3:
https://playready-v1.directtaps.net/pr/svc/rightsmanager.asmx
Recursos:
- Aquisição de licença básica
- Proteção de saída simples
- Protocolos SOAP herdados
- Compatibilidade do Silverlight
Servidores de Teste do PlayReady 2.x
Servidores com suporte para recursos do PlayReady 2.0-2.3:
https://playready-v2.directtaps.net/pr/svc/rightsmanager.asmx
Recursos:
- Políticas de licença aprimoradas
- Licenças associadas ao domínio
- Funcionalidade de parada segura
- Suporte a DRM baseado em hardware
Servidores de Teste do PlayReady 3.x
Servidores modernos com funcionalidades do PlayReady 3.0+:
https://playready-v3.directtaps.net/pr/svc/rightsmanager.asmx
Recursos:
- Suporte a CENC (Criptografia Comum)
- Níveis avançados de proteção de saída
- Funcionalidade de exclusão segura
- Rotação de chaves aprimorada
Servidores de Teste do PlayReady 4.x
Servidores mais recentes com suporte para recursos do PlayReady 4.0+:
https://playready-v4.directtaps.net/pr/svc/rightsmanager.asmx
Recursos:
- Suporte ao nível de segurança do SL3000
- Segurança de hardware avançada
- Imposição de política aprimorada
- Padrões de criptografia modernos
Teste de Version-Specific
Detecção de versão do cliente
Testar a compatibilidade do servidor com diferentes versões do cliente:
// Test client version compatibility
async function testClientVersionCompatibility(clientVersion) {
const serverUrl = getServerUrlForVersion(clientVersion);
const response = await testLicenseAcquisition(serverUrl);
return response.success;
}
function getServerUrlForVersion(version) {
const versionMap = {
'1.x': 'https://playready-v1.directtaps.net/pr/svc/rightsmanager.asmx',
'2.x': 'https://playready-v2.directtaps.net/pr/svc/rightsmanager.asmx',
'3.x': 'https://playready-v3.directtaps.net/pr/svc/rightsmanager.asmx',
'4.x': 'https://playready-v4.directtaps.net/pr/svc/rightsmanager.asmx'
};
return versionMap[version];
}
Matriz de compatibilidade de recursos
| Característica | v1.x | v2.x | v3.x | v4.x |
|---|---|---|---|---|
| Aquisição básica de licença | ✓ | ✓ | ✓ | ✓ |
| Licenças de Domain-Bound | ✗ | ✓ | ✓ | ✓ |
| Parada Segura | ✗ | ✓ | ✓ | ✓ |
| Exclusão segura | ✗ | ✗ | ✓ | ✓ |
| Segurança de hardware | ✗ | Parcial | ✓ | ✓ |
| OPLs avançadas | ✗ | ✗ | ✓ | ✓ |
| Suporte ao SL3000 | ✗ | ✗ | ✗ | ✓ |
Configuração do Version-Specific
Configuração do PlayReady 1.x
Configuração básica de licença para clientes herdados:
<LicenseAcquisition>
<Header>
<DATA>
<PROTECTINFO>
<KEYLEN>16</KEYLEN>
<ALGID>AESCTR</ALGID>
</PROTECTINFO>
<KID>base64-encoded-kid</KID>
<CHECKSUM>base64-encoded-checksum</CHECKSUM>
</DATA>
</Header>
</LicenseAcquisition>
Configuração do PlayReady 2.x
Configuração aprimorada com suporte ao domínio:
{
"version": "2.0",
"licenseType": "persistent",
"keyId": "key-id-guid",
"domainBinding": {
"required": true,
"domainId": "domain-service-id"
},
"outputProtection": {
"digital": "required",
"analog": "copy-never"
}
}
Configuração do PlayReady 3.x
Configuração moderna com recursos avançados:
{
"version": "3.0",
"licenseType": "persistent",
"keyId": "key-id-guid",
"securityLevel": "SL2000",
"outputProtectionLevels": {
"compressedDigitalVideo": 270,
"uncompressedDigitalVideo": 270,
"analogVideo": 150,
"compressedDigitalAudio": 200,
"uncompressedDigitalAudio": 200
},
"secureStop": {
"required": true,
"serverUrl": "https://securestop.service.com"
}
}
Configuração do PlayReady 4.x
Configuração mais recente com suporte ao SL3000:
{
"version": "4.0",
"licenseType": "persistent",
"keyId": "key-id-guid",
"securityLevel": "SL3000",
"hardwareBinding": {
"required": true,
"allowSoftwareFallback": false
},
"outputProtectionLevels": {
"compressedDigitalVideo": 270,
"uncompressedDigitalVideo": 270,
"analogVideo": 100
},
"advancedSecurity": {
"antiRollbackClock": true,
"tamperResistance": "required"
}
}
Cenários de teste por versão
Teste de compatibilidade de versão
Cenários de teste para cada versão do servidor:
Teste do PlayReady 1.x
// Basic license acquisition test
async function testPlayReady1x() {
const config = {
serverUrl: 'https://playready-v1.directtaps.net/pr/svc/rightsmanager.asmx',
playRight: 1,
keyId: 'test-key-id'
};
return await testBasicLicenseAcquisition(config);
}
Teste do PlayReady 2.x
// Domain-bound license test
async function testPlayReady2x() {
const config = {
serverUrl: 'https://playready-v2.directtaps.net/pr/svc/rightsmanager.asmx',
licenseType: 'persistent',
keyId: 'test-key-id',
domainRequired: true
};
return await testDomainBoundLicense(config);
}
Teste do PlayReady 3.x
// Secure stop functionality test
async function testPlayReady3x() {
const config = {
serverUrl: 'https://playready-v3.directtaps.net/pr/svc/rightsmanager.asmx',
licenseType: 'persistent',
keyId: 'test-key-id',
secureStopRequired: true,
securityLevel: 'SL2000'
};
return await testSecureStopFunctionality(config);
}
Teste do PlayReady 4.x
// Hardware security test
async function testPlayReady4x() {
const config = {
serverUrl: 'https://playready-v4.directtaps.net/pr/svc/rightsmanager.asmx',
licenseType: 'persistent',
keyId: 'test-key-id',
securityLevel: 'SL3000',
hardwareBindingRequired: true
};
return await testHardwareSecurity(config);
}
Estratégia de seleção de servidor
Detecção automática de versão
async function selectOptimalServer(clientCapabilities) {
// Check client PlayReady version
const clientVersion = clientCapabilities.playreadyVersion;
// Select compatible server version
if (clientVersion >= '4.0') {
return 'https://playready-v4.directtaps.net/pr/svc/rightsmanager.asmx';
} else if (clientVersion >= '3.0') {
return 'https://playready-v3.directtaps.net/pr/svc/rightsmanager.asmx';
} else if (clientVersion >= '2.0') {
return 'https://playready-v2.directtaps.net/pr/svc/rightsmanager.asmx';
} else {
return 'https://playready-v1.directtaps.net/pr/svc/rightsmanager.asmx';
}
}
Seleção de Feature-Based
function selectServerByFeatures(requiredFeatures) {
const serverCapabilities = {
'v4': ['basic', 'domain', 'secureStop', 'secureDelete', 'sl3000'],
'v3': ['basic', 'domain', 'secureStop', 'secureDelete', 'sl2000'],
'v2': ['basic', 'domain', 'secureStop'],
'v1': ['basic']
};
// Find minimum server version that supports all required features
for (const [version, features] of Object.entries(serverCapabilities).reverse()) {
if (requiredFeatures.every(feature => features.includes(feature))) {
return `https://playready-${version}.directtaps.net/pr/svc/rightsmanager.asmx`;
}
}
throw new Error('No compatible server version found');
}
Teste de migração
Compatibilidade entre versões
Testar a compatibilidade de licenças em diferentes versões do servidor:
async function testCrossVersionCompatibility() {
const keyId = 'test-key-12345';
const results = {};
// Test each server version
for (const version of ['v1', 'v2', 'v3', 'v4']) {
try {
const serverUrl = `https://playready-${version}.directtaps.net/pr/svc/rightsmanager.asmx`;
results[version] = await testLicenseAcquisition(serverUrl, keyId);
} catch (error) {
results[version] = { success: false, error: error.message };
}
}
return results;
}
Teste de caminho de atualização
Testar cenários de atualização do cliente:
async function testUpgradePath(fromVersion, toVersion) {
// Get license from old server
const oldServerUrl = `https://playready-${fromVersion}.directtaps.net/pr/svc/rightsmanager.asmx`;
const oldLicense = await acquireLicense(oldServerUrl);
// Test license compatibility with new server
const newServerUrl = `https://playready-${toVersion}.directtaps.net/pr/svc/rightsmanager.asmx`;
return await validateLicenseCompatibility(newServerUrl, oldLicense);
}
Práticas recomendadas
Diretrizes de seleção de servidor
- Corresponder à versão do cliente: usar a versão do servidor que corresponde ou é compatível com o cliente
- Requisitos de recurso: selecione com base nos recursos de DRM necessários
- Nível de segurança: escolha o nível de segurança apropriado para conteúdo
- Compatibilidade com versões anteriores: teste com versões de servidor mais antigas para compatibilidade
Recomendações de teste
- Teste de matriz de versão: testar todas as combinações de versão cliente-servidor
- Isolamento de recursos: testar recursos individuais em versões de servidor apropriadas
- Cenários de migração: testar caminhos de atualização e downgrade
- Tratamento de erros: cenários de erro de incompatibilidade de versão de teste
Monitoramento e diagnóstico
Verificações de integridade do servidor
async function checkServerHealth(version) {
const serverUrl = `https://playready-${version}.directtaps.net/pr/svc/rightsmanager.asmx`;
try {
const response = await fetch(`${serverUrl}?health`);
return {
version: version,
status: response.ok ? 'healthy' : 'unhealthy',
responseTime: response.headers.get('x-response-time')
};
} catch (error) {
return {
version: version,
status: 'error',
error: error.message
};
}
}
Documentação relacionada
- Serviço de Servidor de Teste do PlayReady – Visão geral do serviço principal
- Como testar versões de Client-Server – diretrizes de teste de versão
- Como migrar – diretrizes de migração
- Servidores de Teste do PlayReady – Documentação completa do servidor
Suporte e solução de problemas
Para problemas com servidores com versão:
- Verificar a compatibilidade de versão do cliente-servidor
- Verificar matriz de suporte de recursos
- Testar com a versão apropriada do servidor
- Examinar os requisitos de configuração específicos da versão
- Validar os requisitos de nível de segurança
Para obter suporte adicional, consulte a documentação principal dos Servidores de Teste do PlayReady .