이전 버전의 PK 및 서버에서 마이그레이션하는 방법
PlayReady Services에 대한 권장 사항
Microsoft는 다음 마이그레이션 정책을 권장합니다.
서비스가 최신 버전의 PlayReady SDK로 업그레이드되었는지 확인합니다. 이렇게 하면 새 디바이스와 레거시 디바이스에서 최상의 호환성을 제공합니다. 또한 최신 버전의 서버 SDK는 상당한 성능 및 안정성 향상을 추가했습니다. 최신 PlayReady Server 4.0으로 업그레이드하려면 추가 라이선스 또는 라이선스 요금이 필요하지 않습니다 .
새 디바이스가 PlayReady를 하드웨어(SoC)로 계속 마이그레이션함에 따라 PlayReady 3.0 이상 및 SL3000으로 서비스에 보고하는 디바이스가 점점 더 많아질 것입니다. 예를 들어 모든 Windows 10 디바이스는 이제 PlayReady 3.0 이상 디바이스로 보고됩니다. 서비스는 호환성을 유지하고 새로운 기능 중 일부를 활용하기 위해 최신 버전의 서버 SDK로 업그레이드하는 것이 좋습니다.
새 디바이스를 지원하는 동안 레거시 라이선스 서비스를 있는 그대로 유지하는 것과 같은 에지 사례를 처리하는 가이드로 이 항목에 제공된 정보를 사용합니다.
라이선스 사용자는 피드백 사이트에 액세스하기 위해 문의 askdrm@microsoft.com 하여 마이그레이션 질문을 제출할 수 있습니다.
PlayReady 디바이스 제조업체용 권장 사항
OEM은 2017년 10월에 릴리스된 PK4.0으로 디바이스를 업그레이드하는 것이 좋습니다. 이 버전은 디바이스가 상위 미디어 서비스에서 구현되는 최신 기능을 활용할 수 있는 유일한 버전입니다.
장점 | 단점 - 주의 사항 |
---|---|
SL3000을 지원할 수 있습니다. | 서버 SDK 1.X와 호환되지 않음 |
SecureStop, SecureDelete, MaxResDecode 등과 같은 최신 기능을 구현할 수 있습니다. | |
더 나은 코드베이스 | |
콘텐츠 소유자가 요청한 새 라이선스 정책을 적용할 수 있는지 확인 |
OEM 업그레이드 계획
서비스에 문의하고 서버 SDK 2.0 이상 버전을 모두 마이그레이션하거나 추가해야 합니다.
서버 SDK 버전을 확인합니다.
서비스에 대한 고려 사항을 반복합니다. Microsoft의 추가 라이선스 요구 사항 및 추가 비용 없음 .
서버 SDK v2.0+ 기반 라이선스 서비스를 실행하는 경우 호환될 수 있습니다. 다음 섹션의 서비스 URL 및 시나리오는 호환성 테스트를 지원할 수 있습니다.
서버 SDK v1을 실행하는 경우 X 기반 라이선스 서버는 서버 SDK 2.0 이상(최신 버전 권장)에 따라 라이선스 서버를 마이그레이션하거나 새 클라이언트에 대한 최신 라이선스 서버를 추가할 수 있습니다.
Microsoft에서 PK 4.0을 다운로드합니다.
전자 메일을 보내 Microsoft 파트너 또는 Microsoft에서 직접 지원을 받으 AskDRM@microsoft.com세요.
PK 4.0을 구현하고 제품을 릴리스합니다.
서비스에 대한 마이그레이션 정보
최적의 디바이스 호환성을 위해 라이선스 서버가 최신 버전의 서버 SDK를 실행하고 있는지 확인합니다. 가장 최근의 서버 SDK는 사용된 포팅 키트 버전에 관계없이 모든 PlayReady 클라이언트에 라이선스를 제공할 수 있습니다. 3.0 이상 디바이스 포팅 키트를 사용하여 개발한 클라이언트가 PlayReady SDK 1.x를 사용하여 라이선스 서비스에서 라이선스를 획득하려고 하면 라이선스 서비스는 일반 서비스 특정 SOAP 오류를 반환합니다. 서버는 Windows 로그에 예외를 기록하여 챌린지에 클라이언트 인증서 체인이 없음을 기록합니다.
PlayReady 서비스를 서버 SDK 4.0으로 마이그레이션
서비스 업그레이드에는 일반적으로 코드 변경이 포함되지 않고 업데이트된 라이브러리의 다시 컴파일 및 배포만 포함됩니다. 경우에 따라 일부 사용되지 않는 API로 인해 코드가 약간 변경될 수 있습니다. 라이선스 처리기 라이브러리의 다시 컴파일 및 배포는 서비스에 액세스하는 디바이스에 투명해야 합니다.
업데이트된 라이선스 처리기를 컴파일하고 배포하려면 다음 사항을 고려해야 합니다.
프로젝트는 이전 PlayReady 라이브러리에 대한 참조를 제거하고 다시 컴파일하기 전에 새 라이브러리를 참조해야 합니다.
최신 서버 SDK에는 .NET 4.0 이상이 필요합니다. 1.52와 같은 초기 버전에서 라이선스 서비스 처리기를 업그레이드하는 경우 프로젝트 속성에서 대상 프레임워크를 4.0 이상으로 업데이트해야 합니다.
레거시 처리기가 4.0 미만의 .NET 버전을 대상으로 하는 다른 라이브러리를 참조하는 경우 추가 마이그레이션 단계가 있을 수 있습니다. 그러나 .NET 라이브러리는 일반적으로 문제 없이 더 작은 버전을 참조할 수 있습니다. 참조된 라이브러리를 처리기 버전으로 다시 컴파일하거나 타사 구성 요소에 대한 라이브러리 업데이트를 가져올 수 있는 기회를 조사하는 것이 좋습니다.
프로젝트 내에서는 Microsoft.Media.Drm.RMCore만 참조해야 합니다. 솔루션을 배포할 때 다른 DLL을 웹 사이트의 bin 디렉터리에 배포해야 합니다. 이전 SDK의 경우와 마찬가지로 프로젝트 내에서 참조할 필요가 없습니다.
라이선스 서비스에서 사용하는 애플리케이션 풀 에는 최소 .NET CLR 버전 4.0이 필요합니다. 라이선스 서비스가 2.0 이하를 실행 중인 경우 4.0 미만의 .NET CLR 버전 내에서 실행 중일 수 있습니다.
최신 PlayReady 서버 SDK는 Windows Server 2012 이상에서만 지원됩니다. 그러나 Windows Server 2008 R2에는 서버 SDK에 문제가 있는 것으로 알려져 있지 않습니다.
서비스에 대해 다른 서버 SDK 버전 지원
릴리스 직후 최신 버전의 SDK로 마이그레이션하는 것이 좋습니다. 그러나 경우에 따라 서비스에서 여러 버전의 서버 SDK를 실행하려고 할 수 있습니다. 이는 쉽게 업데이트되지 않는 레거시 및 보관 서비스 및 엔드포인트를 유지 관리하기 때문일 수 있습니다. 이 경우 서비스는 레거시 서비스를 그대로 유지하면서 새 클라이언트를 업데이트된 라이선스 서비스로 가리킬 수 있습니다. 예를 들어 서비스에 PlayReady PK 1.2로 빌드된 클라이언트를 실행하는 에코시스템 내에 여러 레거시 디바이스가 있을 수 있습니다. 새 디바이스는 PlayReady PK 4.0을 사용하여 개발되었습니다. 새 클라이언트는 서버 SDK 2.0 이상으로 빌드된 라이선스 서비스를 가리킬 필요가 있습니다. 레거시 디바이스와 새 디바이스가 모두 동일한 애플리케이션(예: HTML 기반 앱 플랫폼)을 사용하는 경우 클라이언트 버전을 검색하려면 애플리케이션에 논리를 추가해야 합니다. 그런 다음 클라이언트 애플리케이션은 라이선스 요청을 최신 라이선스 서비스로 보낼 수 있습니다.
권장되는 마이그레이션은 라이선스 서비스를 최신 버전의 서버 SDK로 업데이트하는 것입니다. 이렇게 하면 많은 서비스에 대한 모든 디바이스에서 호환성을 제공할 수 있습니다. 서비스는 호환성 유효성을 검사하기 위해 클라이언트에서 테스트해야 합니다.
서비스가 레거시 클라이언트 및 서비스 구성을 변경하지 않으려는 경우 최신 버전의 SDK로 업그레이드되고 최신 클라이언트에서 활용하는 두 번째 라이선스 서비스를 호스트하는 것이 좋습니다.
서비스가 레거시 디바이스(PlayReady 1.X) 및 최신 디바이스(PlayReady 3.0 이상)에서 단일 클라이언트 애플리케이션을 사용하는 경우 두 개의 PlayReady 라이선스 서버(PlayReady 1.X 및 PlayReady 3.0 이상)를 운영하여 이러한 모든 디바이스에 라이선스를 제공해야 합니다. 애플리케이션에는 기본 PlayReady 클라이언트의 버전에 따라 올바른 라이선스 서버로 요청을 라우팅하는 논리가 포함될 수 있습니다. 또는 서비스는 단일 URL의 모든 디바이스에서 들어오는 요청을 적절한 라이선스 서버로 라우팅하는 서비스 프록시를 사용할 수 있습니다.
라이선스 챌린지를 검사하여 프록시에서 이 작업을 수행할 수 있습니다. PK 버전은 요소에 기록됩니다.
요소는 다음 요소 아래에 SOAP 챌린지 내에 있습니다.
<Challenge><LA><CLIENTINFO><CLIENTVERSION>3.1.0.1017</CLIENTVERSION>
레거시 라이선스 서비스를 사용하여 PK 3.0 이상을 기반으로 하는 클라이언트 지원
PlayReady 디바이스 포팅 키트 3.0 이상으로 개발된 클라이언트 디바이스는 서버 SDK 2.0 이상으로 개발된 기존 서비스에서 작동할 가능성이 높습니다. 위에서 설명한 것처럼 서비스는 호환성 유효성을 검사하기 위해 PK 3.0 이상의 클라이언트를 테스트해야 합니다.
디바이스에 SL3000 인증서가 있는 경우 라이선스 처리기의 클라이언트 인증서를 통해 노출되는 SecurityLevel은 3000으로 보고됩니다. 이로 인해 프로덕션 디바이스와 테스트 디바이스를 구분하기 위해 특정 SecurityLevel 값을 찾는 경우 일부 라이선스 처리기에 문제가 발생할 수 있습니다.
SecurityLevels를 구분하는 것은 라이브 서비스에서 재생 라이선스의 유효성을 검사하기 위해 테스트 디바이스에 제한된 콘텐츠 액세스를 제공하는 서비스에 일반적입니다. SecurityLevel 2000으로 보고된 디바이스만 상업용 콘텐츠에 대해 재생 라이선스를 제공합니다. 이 서비스는 클라이언트에서 SOAP 오류를 발생시키는 서비스별 예외를 throw합니다.
아래 예제에서 SecurityLevel은 프로덕션 디바이스인지 확인하기 위해 클라이언트 인증서에서 확인됩니다. 2000으로 하드 코딩되었으므로 보안 수준이 3000인 디바이스는 프로덕션 디바이스로 표시되지 않습니다.
다음 예제에서는 보안 수준에 대한 검사를 2000보다 크거나 같은지 여부를 업데이트합니다. 이렇게 하면 SL3000 디바이스와의 호환성이 보장됩니다.
서비스에 대한 PlayReady 3.X 이상 기능 지원
새로운 하드웨어 DRM 보안 수준 외에도 PlayReady 3.0 이상 릴리스에는 다양한 새로운 기능이 도입되었습니다. 이러한 새로운 기능을 활용하기 위해 서비스는 먼저 클라이언트가 PlayReady 3.0 이상 기능을 사용할 수 있는지 확인해야 합니다. 클라이언트 인증서 클래스는 이제 처리기 내에서 정책을 정의하는 논리에 도움이 되는 기능 컬렉션을 반환하는 GetSupportedFeatures 메서드를 지원합니다. 클라이언트가 3.0 디바이스 포팅 키트를 사용하여 개발된 경우 컬렉션에 SupportedFeature.PlayReady3Features 속성이 있습니다. 컬렉션에는 클라이언트가 보안 클록 또는 롤백 방지 클록을 사용하는지 여부와 같은 추가 유용한 기능이 있습니다.
다음은 디바이스가 PlayReady 3.0 클라이언트인지 여부를 감지하는 방법의 예입니다.
검색된 처리기는 예를 들어 보안 중지, 실시간 라이선스 만료 및 MaxResDecode와 같은 정책을 추가할 수 있습니다.
서비스에서 SL2000 및 SL3000 모두 지원
PlayReady는 준수 및 견고성 규칙에 정의된 대로 신뢰할 수 있는 실행 환경 내에서 실행하기 위해 PlayReady 하드웨어 보안 수준을 충족하는 디바이스에서 보고하는 새로운 보안 수준 SL3000을 도입했습니다. 서비스에서는 일부 클라이언트가 SL2000으로 보고되고 다른 클라이언트는 SL3000으로 보고하는 것이 일반적입니다. 예를 들어 Windows Windows 10 업그레이드된 이전 디바이스는 SL2000으로 보고될 수 있습니다. 새로운 Windows 10 디바이스는 DRM이 최신 칩에 통합된 SL3000으로 보고됩니다.
다음은 클라이언트의 과제에서 보고된 보안 수준에 따라 다른 정책을 제공하는 서비스의 예입니다.
서비스는 소프트웨어 기반 DRM 클라이언트와 하드웨어 기반 DRM 클라이언트 간에 정책이 어떻게 달라야 하는지 결정합니다. 이러한 정책은 스튜디오 요구 사항에 따라 구동될 수 있습니다. 예를 들어 스튜디오는 향후 Ultra-HD 또는 4K 콘텐츠를 하드웨어 기반 PlayReady DRM을 지원하는 디바이스로 제한해야 할 수 있습니다.
해상도에 대한 PlayReady 3.0 이상 정책은 몇 가지 다른 방법으로 수행할 수 있습니다. 한 가지 방법은 SL2000 라이선스의 MaxResDecode 정책을 콘텐츠 소유자가 제공하는 허용 한도로 설정하는 것입니다. SL3000 디바이스는 이 정책 제한을 받지 않습니다. 적응 스트리밍 기술에 적용되는 또 다른 옵션은 다양한 해상도를 보호할 때 다른 KeyID를 사용하는 것입니다. 보안 수준을 검색할 때 서비스는 소프트웨어 기반 클라이언트에 허용되는 확인에 대한 라이선스만 제공할 수 있습니다. SL3000의 보안 수준을 보고하는 클라이언트는 모든 해결에 대한 재생 라이선스를 가져옵니다. PlayReady는 스키마에서 여러 KeyID를 사용하도록 설정하여 이 후자의 시나리오를 지원하기 위해 새 DRM 헤더(v4.2.0.0 이상)를 도입했습니다.