Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Überblick
Die PlayReady-Testumgebung bietet mehrere versionsgeschützte Server, um Tests in verschiedenen PlayReady-Versionen und Featuresätzen zu unterstützen. Jeder versionsgebundene Server implementiert spezifische PlayReady-Funktionen und Complianceanforderungen und ermöglicht umfassende Tests von Clientimplementierungen.
Verfügbare Serverversionen
PlayReady 1.x Testserver
Legacyserver für Kompatibilitätstests für PlayReady 1.0-1.3:
https://playready-v1.directtaps.net/pr/svc/rightsmanager.asmx
Funktionen:
- Basislizenzerwerb
- Einfacher Ausgabeschutz
- Ältere SOAP-Protokolle
- Silverlight-Kompatibilität
PlayReady 2.x Testserver
Server, die PlayReady 2.0-2.3-Features unterstützen:
https://playready-v2.directtaps.net/pr/svc/rightsmanager.asmx
Funktionen:
- Erweiterte Lizenzrichtlinien
- Domänengebundene Lizenzen
- Funktion für sicheres Beenden
- Hardwarebasierte DRM-Unterstützung
PlayReady 3.x Testserver
Moderne Server mit PlayReady 3.0+-Funktionen:
https://playready-v3.directtaps.net/pr/svc/rightsmanager.asmx
Funktionen:
- Common Encryption (CENC)-Unterstützung
- Erweiterte Ausgabeschutzebenen
- Sichere Löschfunktionalität
- Erweiterte Schlüsseldrehung
PlayReady 4.x Testserver
Neueste Server, die PlayReady 4.0+-Features unterstützen:
https://playready-v4.directtaps.net/pr/svc/rightsmanager.asmx
Funktionen:
- SL3000-Unterstützung auf Sicherheitsebene
- Erweiterte Hardwaresicherheit
- Erweiterte Richtlinienerzwingung
- Moderne Verschlüsselungsstandards
Version-Specific-Tests
Clientversionserkennung
Testen der Serverkompatibilität mit verschiedenen Clientversionen:
// 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];
}
Featurekompatibilitätsmatrix
| Merkmal | v1.x | v2.x | v3.x | v4.x |
|---|---|---|---|---|
| Basislizenzerwerb | ✓ | ✓ | ✓ | ✓ |
| Domain-Bound-Lizenzen | ✗ | ✓ | ✓ | ✓ |
| Sicheres Beenden | ✗ | ✓ | ✓ | ✓ |
| Sicheres Löschen | ✗ | ✗ | ✓ | ✓ |
| Hardwaresicherheit | ✗ | Teilweise | ✓ | ✓ |
| Erweiterte OPLs | ✗ | ✗ | ✓ | ✓ |
| SL3000-Unterstützung | ✗ | ✗ | ✗ | ✓ |
Version-Specific-Konfiguration
PlayReady 1.x-Konfiguration
Grundlegende Lizenzkonfiguration für Legacyclients:
<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-Konfiguration
Erweiterte Konfiguration mit Domänenunterstützung:
{
"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-Konfiguration
Moderne Konfiguration mit erweiterten Features:
{
"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-Konfiguration
Neueste Konfiguration mit SL3000-Unterstützung:
{
"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"
}
}
Testszenarien nach Version
Versionskompatibilitätstests
Testszenarien für jede Serverversion:
PlayReady 1.x-Tests
// 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);
}
PlayReady 2.x-Tests
// 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);
}
PlayReady 3.x-Tests
// 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);
}
PlayReady 4.x-Tests
// 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);
}
Serverauswahlstrategie
Automatische Versionserkennung
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';
}
}
Feature-Based Auswahl
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');
}
Migrationstests
Versionsübergreifende Kompatibilität
Testen der Lizenzkompatibilität in verschiedenen Serverversionen:
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;
}
Upgradepfadtests
Testen von Clientupgradeszenarien:
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);
}
Bewährte Methoden
Richtlinien für die Serverauswahl
- Clientversion beachten: Verwenden der Serverversion, die mit dem Client übereinstimmt oder kompatibel ist
- Featureanforderungen: Auswählen basierend auf den erforderlichen DRM-Features
- Sicherheitsstufe: Auswählen der geeigneten Sicherheitsstufe für Inhalte
- Abwärtskompatibilität: Testen mit älteren Serverversionen zur Kompatibilität
Testempfehlungen
- Versionsmatrixtests: Testen aller Clientserverversionskombinationen
- Featureisolation: Testen einzelner Features in entsprechenden Serverversionen
- Migrationsszenarien: Testen von Upgrade- und Downgradepfaden
- Fehlerbehandlung: Fehlerszenarien für Testversionskonflikt
Überwachung und Diagnose
Serverintegritätsprüfungen
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
};
}
}
Verwandte Dokumentation
- PlayReady Test Server Service – Übersicht über den Hauptdienst
- So testen Sie Client-Server Versionen – Anleitung zum Testen von Versionen
- Migrieren – Migrationsleitfaden
- PlayReady-Testserver – Vollständige Serverdokumentation
Support und Problembehandlung
Für Probleme mit versionsierten Servern:
- Überprüfen der Clientserverversionskompatibilität
- Überprüfen der Featureunterstützungsmatrix
- Testen mit entsprechender Serverversion
- Überprüfen der versionsspezifischen Konfigurationsanforderungen
- Überprüfen der Anforderungen auf Sicherheitsebene
Weitere Unterstützung finden Sie in der Hauptdokumentation zu PlayReady-Testservern .