개요
PlayReady 테스트 서버는 이전 PlayReady 구현 및 기존 클라이언트 애플리케이션과의 이전 버전과의 호환성을 보장하기 위해 레거시 구문에 대한 지원을 유지합니다. 이 레거시 방법은 초기 PlayReady 버전부터 지원된 간소화된 매개 변수 형식과 기존 HTTP 메서드를 사용합니다.
레거시 URL 형식
레거시 구문은 간소화된 URL 구조를 사용합니다.
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?PlayRight=1&kid=KEY_ID
지원되는 레거시 매개 변수
PlayRight 매개 변수
매개 변수는 PlayRight 기본 라이선스 권한을 지정합니다.
- 1: 재생 허용(기본 라이선스)
- 2: 복사 보호를 사용하여 재생 허용
- 3: 향상된 보호로 재생 허용
- 0: 거부 재생 거부(거부 시나리오 테스트용)
키 ID 매개 변수(kid)
레거시 형식은 간소화된 키 ID 사양을 지원합니다.
- 표준 GUID 형식:
12345678-1234-1234-1234-123456789012 - 간소화된 형식:
123456789012345678901234567890123456 - Base64로 인코딩된 형식:
base64-encoded-key-id
레거시 라이선스 유형
기본 재생 라이선스
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?PlayRight=1&kid=12345678-1234-1234-1234-123456789012
Copy-Protected 라이선스
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?PlayRight=2&kid=12345678-1234-1234-1234-123456789012
향상된 보호 라이선스
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?PlayRight=3&kid=12345678-1234-1234-1234-123456789012
레거시 HTTP 메서드
POST 요청 형식
기존 SOAP 기반 라이선스 취득:
POST /pr/svc/rightsmanager.asmx HTTP/1.1
Host: playready.directtaps.net
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://schemas.microsoft.com/DRM/2007/03/protocols/AcquireLicense"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Body>
<AcquireLicense xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols">
<challenge>base64-encoded-challenge</challenge>
</AcquireLicense>
</soap:Body>
</soap:Envelope>
GET 요청 형식
간단한 GET 기반 라이선스 요청:
GET /pr/svc/rightsmanager.asmx?PlayRight=1&kid=12345678-1234-1234-1234-123456789012 HTTP/1.1
Host: playready.directtaps.net
클라이언트 통합 예제
레거시 JavaScript 구현
// Legacy URL construction
function buildLegacyLicenseUrl(keyId, playRight) {
return `https://playready.directtaps.net/pr/svc/rightsmanager.asmx?PlayRight=${playRight}&kid=${keyId}`;
}
// Basic license request
const licenseUrl = buildLegacyLicenseUrl(keyId, 1);
// Use with legacy PlayReady implementations
레거시 C# 구현
// Legacy license request construction
public string BuildLegacyLicenseUrl(string keyId, int playRight)
{
return $"https://playready.directtaps.net/pr/svc/rightsmanager.asmx?PlayRight={playRight}&kid={keyId}";
}
// Usage
string licenseUrl = BuildLegacyLicenseUrl(keyId, 1);
호환성 매트릭스
PlayReady 버전 지원
| PlayReady 버전 | 레거시 지원 | 권장되는 접근 방식 |
|---|---|---|
| 1.0 - 1.3 | 전체 | 레거시 구문 |
| 2.0 - 2.3 | 전체 | 레거시 또는 최신 |
| 3.0+ | 한정 | 최신 구문 |
| 4.0+ | 더 이상 권장되지 않음 | 최신 구문 |
클라이언트 플랫폼 지원
| 플랫폼 | 레거시 지원 | 비고 |
|---|---|---|
| Windows 레거시 | 전체 | 원래 구현 |
| Silverlight | 전체 | 레거시 플랫폼 지원 |
| Windows 10 이상 | 한정 | 최신 API 기본 설정 |
| 모바일 플랫폼 | 다릅니다 | 플랫폼 설명서 확인 |
마이그레이션 지침
레거시 구문에서
레거시 구문에서 최신 접근 방법으로 마이그레이션하는 경우:
1단계: 현재 사용량 식별
// Current legacy usage
const legacyUrl = `https://playready.directtaps.net/pr/svc/rightsmanager.asmx?PlayRight=1&kid=${keyId}`;
2단계: 최신 동급에 매핑
// Modern equivalent
const modernConfig = {
licenseType: "persistent",
keyId: keyId,
policies: {
playback: {
allowOffline: true
}
}
};
3단계: 라이선스 취득 업데이트
// Modern license request
const licenseUrl = "https://playready.directtaps.net/pr/svc/rightsmanager.asmx";
// Include modern configuration in request body
레거시 구문의 제한 사항
기능 제한 사항
- 제한된 정책 제어: 기본 재생 권한만
- 고급 기능 없음: 최신 DRM 기능이 누락됨
- 간소화된 보호: 기본 복사 보호 옵션
- 도메인 지원 없음: 도메인 바인딩된 라이선스가 지원되지 않음
보안 고려사항
- 이전 암호화: 레거시 암호화 방법 사용
- 제한된 유효성 검사: 보안 유효성 검사 감소
- 호환성 문제: 최신 보안 요구 사항에서 작동하지 않을 수 있음
레거시 구현 테스트
기본 기능 테스트
// Test basic playback
testLegacyLicense(keyId, 1); // Should allow playback
// Test copy protection
testLegacyLicense(keyId, 2); // Should enable copy protection
// Test denial scenario
testLegacyLicense(keyId, 0); // Should deny playback
호환성 테스트
- 버전 테스트: 다른 PlayReady 버전으로 테스트
- 플랫폼 테스트: 지원되는 플랫폼에서 확인
- 기능 테스트: 사용 가능한 기능의 유효성 검사가 올바르게 작동합니다.
- 마이그레이션 테스트: 최신 구문으로 업그레이드 경로 테스트
오류 처리
Legacy-Specific 오류
- 지원되지 않는 PlayRight: 잘못된 PlayRight 매개 변수 값
- 레거시 키 형식: 레거시 모드에서 지원되지 않는 키 ID 형식
- 버전 불일치: 레거시 서버와 호환되지 않는 클라이언트 버전
오류 응답 형식
레거시 오류 응답은 간소화된 XML 형식을 사용합니다.
<?xml version="1.0" encoding="utf-8"?>
<Error>
<Code>400</Code>
<Message>Invalid PlayRight parameter</Message>
</Error>
모범 사례
레거시 구문을 사용하는 경우
- 레거시 시스템: 이전 PlayReady 구현 지원
- 이전 버전과의 호환성: 기존 클라이언트와의 호환성 유지
- 간단한 요구 사항: 고급 기능이 없는 기본 재생
- 마이그레이션 기간: 최신 구현으로 전환하는 동안
권장 대안
새 구현의 경우 다음을 고려합니다.
- 쿼리 문자열 구문 - 간단한 최신 접근 방식
- CustomData JSON 구문 - 고급 구성
- Base64 JSON 구문 - Compact Modern 형식
사용 중단 고지 사항
참고: 레거시 구문 지원은 이전 버전과의 호환성을 위해 유지 관리되지만 새 구현에서는 사용되지 않습니다. 향상된 기능 및 보안을 위해 최신 구문으로 마이그레이션하는 것이 좋습니다.
관련 설명서
- PlayReady 테스트 서버 서비스 - 기본 서비스 개요
- 쿼리 문자열 구문 - 최신 간단한 방법
- 마이그레이션 방법 - 마이그레이션 지침
- PlayReady 테스트 서버 - 전체 서버 설명서
지원 및 문제 해결
레거시 구문 관련 문제:
- PlayReady 버전 호환성 확인
- 매개 변수 형식 및 값 확인
- 간소화된 구성으로 테스트
- 최신 구문으로 마이그레이션 고려
- 플랫폼별 설명서 검토
마이그레이션 지원 및 최신 대안은 기본 PlayReady 테스트 서버 설명서를 참조하세요.