Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Aperçu
L’environnement de test PlayReady fournit plusieurs serveurs avec version pour prendre en charge les tests entre différentes versions et jeux de fonctionnalités PlayReady. Chaque serveur avec version implémente des fonctionnalités PlayReady et des exigences de conformité spécifiques, ce qui permet de tester de manière complète les implémentations du client.
Versions de serveur disponibles
Serveurs de test PlayReady 1.x
Serveurs hérités pour les tests de compatibilité PlayReady 1.0-1.3 :
https://playready-v1.directtaps.net/pr/svc/rightsmanager.asmx
Fonctionnalités :
- Acquisition de licences de base
- Protection de sortie simple
- Protocoles SOAP hérités
- Compatibilité Silverlight
Serveurs de test PlayReady 2.x
Serveurs prenant en charge les fonctionnalités PlayReady 2.0-2.3 :
https://playready-v2.directtaps.net/pr/svc/rightsmanager.asmx
Fonctionnalités :
- Stratégies de licence améliorées
- Licences liées au domaine
- Fonctionnalité d’arrêt sécurisée
- Prise en charge de DRM basée sur le matériel
Serveurs de test PlayReady 3.x
Serveurs modernes avec fonctionnalités PlayReady 3.0+ :
https://playready-v3.directtaps.net/pr/svc/rightsmanager.asmx
Fonctionnalités :
- Prise en charge du chiffrement commun (CENC)
- Niveaux de protection de sortie avancés
- Fonctionnalité de suppression sécurisée
- Rotation améliorée des clés
Serveurs de test PlayReady 4.x
Derniers serveurs prenant en charge les fonctionnalités PlayReady 4.0+ :
https://playready-v4.directtaps.net/pr/svc/rightsmanager.asmx
Fonctionnalités :
- Prise en charge du niveau de sécurité SL3000
- Sécurité matérielle avancée
- Application améliorée de la stratégie
- Normes de chiffrement modernes
test de Version-Specific
Détection de version du client
Testez la compatibilité du serveur avec différentes versions du client :
// 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];
}
Matrice de compatibilité des fonctionnalités
| Caractéristique | v1.x | v2.x | v3.x | v4.x |
|---|---|---|---|---|
| Acquisition de licences de base | ✓ | ✓ | ✓ | ✓ |
| licences Domain-Bound | ✗ | ✓ | ✓ | ✓ |
| Arrêt sécurisé | ✗ | ✓ | ✓ | ✓ |
| Suppression sécurisée | ✗ | ✗ | ✓ | ✓ |
| Sécurité matérielle | ✗ | Partiel | ✓ | ✓ |
| Listes de contrôle d’accès avancées | ✗ | ✗ | ✓ | ✓ |
| Prise en charge de SL3000 | ✗ | ✗ | ✗ | ✓ |
Configuration de Version-Specific
PlayReady 1.x Configuration
Configuration de licence de base pour les clients hérités :
<LicenseAcquisition>
<Header>
<DATA>
<PROTECTINFO>
<KEYLEN>16</KEYLEN>
<ALGID>AESCTR</ALGID>
</PROTECTINFO>
<KID>base64-encoded-kid</KID>
<CHECKSUM>base64-encoded-checksum</CHECKSUM>
</DATA>
</Header>
</LicenseAcquisition>
PlayReady 2.x Configuration
Configuration améliorée avec prise en charge du domaine :
{
"version": "2.0",
"licenseType": "persistent",
"keyId": "key-id-guid",
"domainBinding": {
"required": true,
"domainId": "domain-service-id"
},
"outputProtection": {
"digital": "required",
"analog": "copy-never"
}
}
PlayReady 3.x Configuration
Configuration moderne avec fonctionnalités avancées :
{
"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"
}
}
PlayReady 4.x Configuration
Dernière configuration avec prise en charge de 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"
}
}
Scénarios de test par version
Test de compatibilité des versions
Scénarios de test pour chaque version du serveur :
Test 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);
}
Test 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);
}
Test 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);
}
Test 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);
}
Stratégie de sélection de serveur
Détection automatique des versions
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';
}
}
sélection 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');
}
Test de migration
Compatibilité des versions
Testez la compatibilité des licences entre différentes versions de serveur :
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;
}
Test de chemin de mise à niveau
Scénarios de mise à niveau du client de test :
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);
}
Meilleures pratiques
Recommandations en matière de sélection de serveur
- Mettre en correspondance la version du client : utiliser la version du serveur qui correspond ou est compatible avec le client
- Configuration requise pour les fonctionnalités : sélectionner en fonction des fonctionnalités DRM requises
- Niveau de sécurité : choisissez le niveau de sécurité approprié pour le contenu
- Compatibilité descendante : tester avec des versions antérieures du serveur pour la compatibilité
Recommandations de test
- Test de la matrice de version : tester toutes les combinaisons de versions client-serveur
- Isolation des fonctionnalités : tester des fonctionnalités individuelles sur les versions de serveur appropriées
- Scénarios de migration : tester les chemins de mise à niveau et de rétrogradation
- Gestion des erreurs : Scénarios d’erreur d’incompatibilité de version de test
Surveillance et diagnostics
Vérifications d’intégrité du serveur
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
};
}
}
Documentation connexe
- PlayReady Test Server Service - Vue d’ensemble du service principal
- Guide pratique pour tester les versions Client-Server - Conseils sur les tests de versions
- Guide pratique pour migrer - Guide de migration
- Serveurs de test PlayReady - Documentation complète sur le serveur
Support et résolution des problèmes
Pour les problèmes liés aux serveurs avec version :
- Vérifier la compatibilité des versions du serveur client
- Vérifier la matrice de prise en charge des fonctionnalités
- Tester avec la version appropriée du serveur
- Passer en revue les exigences de configuration spécifiques à la version
- Valider les exigences de niveau de sécurité
Pour obtenir une prise en charge supplémentaire, reportez-vous à la documentation principale des serveurs de test PlayReady .