매개 변수는 쿼리 문자열에 쉼표와 대괄호로 구분되어 입력됩니다. 이 구문은 PlayReady 3 기능을 완벽하게 지원하기 위해 2017년에 도입되었습니다.
- JSON 구문과 유사합니다(실제 JSON은 아님).
- 쉽게 읽고 편집할 수 있습니다.
- 안전하지 않은 문자(예: 앰퍼샌드)를 포함하지 않으며 이스케이프할 필요가 없습니다.
- 참고: 쿼리 문자열에는 공백 문자(' ')가 포함되어서는 안 됩니다.
- 참고: '+' 문자는 base64로 인코딩된 인수에서 허용됩니다.
- 하나의 라이선스 응답에서 여러 라이선스에 대한 요청을 허용하고 각 라이선스에 대한 매개 변수를 설정할 수 있습니다.
- 예: SL3000에서 하나의 키 집합으로 암호화된 비디오 트랙과 SL2000에서 다른 키 집합으로 암호화된 오디오 트랙.
- 새 날짜 시간 형식 yyyymmdd(예: 20171231) 및 설정 시간, 분 및 초 허용: yyyymmdd[hhmmss](예: 20171231235959)
참고: 영구 라이선스를 받으려면 매개 변수에 persist:true를 포함해야 합니다.
예시
| LAURL(https://test.playready.microsoft.com/service/) | Description |
|---|---|
rightsmanager.asmx |
테스트 키 시드를 사용하여 WRMHEADER에서 찾은 어린이의 경우 PLAY 권한 및 보안 수준이 150인 비영구 라이선스 1개를 반환합니다. |
rightsmanager.asmx?cfg=(ckt:aescbc) |
PLAYREADY 4.0의 새로운 기능. AESCBC 암호화에 대해 설정된 콘텐츠 키 유형(AESCTR과 반대)을 사용하여 WRMHEADER에 있는 어린이에 대한 PLAY 권한이 있는 비영구 라이선스를 반환합니다. |
rightsmanager.asmx?cfg=(begindate:20170101,expiration:20170101010000) |
2017년 1월 1일 0:00의 시작 날짜와 2017년 1월 1일 오전 1:00의 고정 만료가 있는 테스트 키 시드를 사용하여 WRMHEADER에 있는 어린이에 대한 PLAY 권한이 있는 비영구 라이선스를 반환합니다. |
rightsmanager.asmx?cfg=(persist:true,begindate:20170101,expiration:20170201,firstexp:60) |
시작 및 종료 날짜가 고정된 영구 라이선스 하나와 첫 번째 재생 후 60초의 상대 만료를 반환합니다. 참고: 영구 라이선스를 받으려면 persist:true를 명시적으로 호출해야 합니다. |
rightsmanager.asmx?cfg=(kid:B6E39626-1CFB-4AA1-BCBD-4EF1ABA7843A,sl:3000),(kid:7C9484BA-C238-467A-869C-CDD8C7167712,sl:2000) |
PLAY 권한이 있는 두 개의 비영구 라이선스를 반환합니다. 하나는 보안 수준이 3000이며, 하나는 보안 수준이 2000인 라이선스입니다. 참고: 이 두 KID는 WRMHEADER의 KID와 일치해야 합니다. |
매개 변수
| 매개 변수 | Meaning | 가치들 | 주석, 예제, 기본값 |
|---|---|---|---|
| SL | 라이선스에 대한 최소 보안 수준 설정 | 150, 2000, 3000 | 예: sl:3000 기본값은 150입니다. 참고: 비디오 키는 sl:3000으로 설정될 수 있지만 일반적으로 클라이언트는 오디오 키만 지원하여 최대 sl:2000으로 설정됩니다. |
| keyseed | 제공된 키 시드를 사용하여 라이선스에서 콘텐츠 키 생성 | base64 바이트 배열 | 예: keyseed:Wdkg2jsl3djgqSFer26XVVVVRPzVEggUOSKSQaz 기본값은 여기에 제공된 테스트 키 시드입니다. |
| 꼬마 | 속성 그룹에서 이러한 속성을 하나의 KID에 연결하는 데 사용됩니다. | 'header', 또는 레지스트리 형식 또는 base64 문자열의 Guid | 예제 1: kid:header 예제 2: kid:e13a7861-d8cc-4284-9245-7c835ebde9f0 예제 3: kid:YXg64czYhEKSRXyDXr3p8A== kid:header의 경우 라이선스 서버는 라이선스 요청과 함께 제공되는 WRMHEADER에 있는 KID를 사용합니다. 이 경우 WRMHEADER는 하나의 KID만 포함해야 합니다. |
| contentkey | 콘텐츠 키 설정 | base64 바이트 배열 | 예: contentkey:eNqVnXrElmo2NSsn7IXeEA== 기본값은 key(TestKeySeed, kid)입니다. |
| ckt | 콘텐츠 키 암호화 유형(CTR 또는 CBC)을 지정합니다. | aesctr, aescbc | 예: ckt:aescbc 기본값은 aesctr입니다. 라이선스에는 AESCBC 암호화에 대한 콘텐츠 키 집합이 포함됩니다. PLAYREADY 4.0의 새로운 기능 |
| 타이드 | 라이선스 응답에서 TransactionId 설정 | guid(임의) | 예: tid:3033E8F0-FB1B-4170-AD5C-60549AAB2C79 제공된 값을 LicenseResponse.TransactionId 속성에 추가합니다. 그러면 클라이언트가 지정된 트랜잭션 식별자를 사용하여 라이선스 승인 챌린지를 라이선스 서버에 다시 게시해야 합니다. |
| playright | 재생 권한 추가 | 거짓, 참 | 예: playright:true 기본값은 true입니다. 참고: 권한 없이 반환된 라이선스는 클라이언트가 콘텐츠를 사용할 수 없습니다. |
| readright | 읽기 권한 추가 | 거짓, 참 | 예: readright:true 기본값은 false입니다. |
| executeright | 실행 권한 추가 | 거짓, 참 | 예: executeright:true 기본값은 false입니다. |
| extendedright | 확장된 권한 추가 | 정수. 예제를 참조하세요. | 예: (extendedright:(type:500,extended:(type:400, mustunderstand:true,besteffort:false,data:Ah==)) |
| 유지 | 라이선스를 영구적 또는 비로 설정 | 거짓, 참 | 예: persist:true 기본값은 거짓입니다. 라이선스가 비영구로 설정된 경우 미디어 플레이어의 컨텍스트에서 RAM에만 클라이언트에 저장됩니다. |
| 간단한 | SimpleNonPersistentLicense 사용 | 거짓, 참 | 예: simple:true 기본값은 거짓입니다. 특정 SimpleNonPersistentLicense 클래스를 사용하여 라이선스 응답을 발급합니다. 이 클래스는 이전 버전의 Silverlight에서 지원되었습니다. |
| begindate | 라이선스를 사용할 수 없는 날짜 및 시간 설정 | yyyymmdd[hhmmss](GMT) | 예: begindate:20170101 라이선스는 2017년 1월 1일 00:00:00 GMT 이전에 재생을 허용하지 않습니다. |
| enddate 또는 expiration | 라이선스가 비활성화된 날짜 및 시간 설정 | yyyymmdd[hhmmss](GMT) | 예제 1: enddate:20170131 예제 2: enddate:20170131235959 - 라이선스는 2017년 1월 31일 23:59:59 GMT 이후 재생을 허용하지 않습니다. |
| firstplayexpiration 또는 firstexp | 첫 번째 재생 후 상대 만료 설정 | 초 정수 | 예: firstexp:60 라이선스는 동일한 라이선스로 첫 번째 재생이 시작된 후 정확히 60초 후에 재생을 시작할 수 없습니다. |
| 실시간 | 실시간 만료 제한 추가 | 거짓, 참 | 예: realtime:true 기본값은 false입니다. 이 속성이 설정되면 클라이언트가 실시간으로 재생 세션 중에 만료를 적용해야 합니다. 참고: PlayReady 3 클라이언트에서만 지원됩니다. |
| removaldate | 클라이언트에서 라이선스를 삭제할 수 있는 날짜 설정(GMT) | yyyymmdd[hhmmss] | 예: removaldate:20170228 클라이언트가 이 속성에 따라 라이선스를 제거하는 것은 선택 사항입니다. Windows는 모든 라이선스 취득 시 이 제거 프로세스를 실행합니다. 이 속성 설정에 대한 추가 제약 조건은 서버 SDK 설명서를 참조하세요. |
| isroot | 요청된 라이선스가 정의된 루트 KID를 사용하는 루트 라이선스여야 합니다. | 거짓, 참 | 예: cfg=(isroot:true,kid:3C6F3C13-6207-4916-867C-8252B3993638) |
| rootid | 리프 라이선스에 대한 루트 KID 설정 | 가이드(guid) | 예: cfg=(rootid:3C6F3C13-6207-4916-867C-8252B3993638,kid:header),(isroot:true,kid:3C6F3C13-6207-4916-867C-8252B3993638) |
| sourceid | SourceID 또는 제한된 원본 ID 제한 설정 | 정수 (int) | 예: sourceid:267 CRs 섹션 6.12에서 허용되는 값 확인 |
| caopl | 압축 디지털 오디오 출력 보호 수준 제한 설정 | integer | 예: caopl:200 기본값은 0입니다. 일반적으로 압축 오디오에 보안 오디오 드라이버가 필요합니다. CRs 섹션 6.7 및 3.6.2에서 허용되는 값을 확인합니다. 서버 SDK 코드: right.CompressedDigitalAudioOPL = 200; |
| ucaopl | 압축되지 않은 디지털 오디오 출력 보호 수준 제한 설정 | integer | 예: ucaopl:300 기본값은 0입니다. 일반적으로 압축되지 않은 오디오에 HDCP 또는 DTCP가 필요합니다. CRs 섹션 6.7 및 3.6.3에서 허용되는 값을 확인합니다. 서버 SDK 코드: right.UncompressedDigitalAudioOPL = 300; |
| cvopl | 압축 디지털 비디오 출력 보호 수준 제한 설정 | integer | 예: cvopl:500 허용되는 모든 값은 PlayReady 제품에서 압축된 암호 해독된 콘텐츠의 비디오 부분을 비디오 출력에 전달해서는 안 됨을 의미합니다. CRs 섹션 6.7 및 3.6.4에서 허용되는 값을 확인합니다. 서버 SDK 코드: right.CompressedDigitalVideoOPL = 500; |
| ucvopl | 압축되지 않은 디지털 비디오 출력 보호 수준 제한 설정 | integer | 예: ucvopl:300 기본값은 0입니다. 일반적으로 압축되지 않은 비디오의 경우 HDMI의 HDCP가 필요합니다. CRs 섹션 6.7 및 3.6.5에서 허용되는 값을 확인합니다. 서버 SDK 코드: right.UncompressedDigitalVideoOPL = 300; |
| avopl | 아날로그 비디오 출력 보호 수준 제한 설정 | integer | 예: avopl:200을 CGMS-A 복사하지 않아도 되도록 합니다. CRs 섹션 6.7 및 3.6.6에서 허용되는 값을 확인합니다. 서버 SDK 코드: right.AnalogVideoOPL = 200; |
| dvop | 명시적 디지털 비디오 출력 보호 추가 | base 64 문자열로 인코딩된 guid 및 선택적 데이터 | 예: dvop:(guid:ABB2C6F1-E663-4625-A945-972D17B231E7,data:AAAAAQ==) HDCP 형식 1을 요구합니다. CRs 섹션 3.6.5.7을 참조하세요. 서버 SDK 코드: right.AddDigitalVideoOutputProtection(new Guid("", 1)) |
| daop | 명시적 디지털 오디오 출력 보호 추가 | base 64 문자열로 인코딩된 guid 및 선택적 데이터 | 예: daop:(guid:6D5CFA59-C250-4426-930E-FAC72C8FCFA6,data:AAAAAQ==) SCMS가 필요합니다. CRs 섹션 3.6.3.8을 참조하세요. 서버 SDK 코드: right.AddDigitalAudioOutputProtection(new Guid("{6D5CFA59-C250-4426-930E-FAC72C8FCFA6}", 1)) |
| avop | 명시적 아날로그 비디오 출력 보호 추가 | base 64 문자열로 인코딩된 guid 및 데이터 | 예: avop:(guid:760AE755-682A-41E0-B1B3-DCDF836A7306,data:AAAAAQ==) CRs 섹션 6.5에서 허용되는 값을 확인합니다. 서버 SDK 코드: right.AddAnalogVideoOutputProtection(new Guid("{760AE755-682A-41E0-B1B3-DCDF836A7306}", 1) |
| extendedrestrictions | 오른쪽에 하나 이상의 확장 제한 추가 | 정수 및 속성, 예제 참조 | 예: (extendedrestrictions:(type:400, mustunderstand:true,besteffort:false,data:Ah==),(type:401, mustunderstand:true,besteffort:false,data:Ah==)) 다른 권한이 설정되지 않은 경우 Play 권한에 적용할 수 있다고 가정합니다. |
| playenablers | 라이선스에 하나 이상의 Play 사용 기능 추가 | guid 또는 guid 그룹 | 예제 1: playenablers:(786627D8-C2A6-44BE-8F88-08AE255B01A7) (알 수 없는 출력 허용). 예제 2: playenablers:(786627D8-C2A6-44BE-8F88-08AE255B01A7,5ABF0F0D-DC29-4B82-9982-FD8E57525BFC) (알 수 없는 출력 및 AirPlay 허용). 모든 Play Enablers에 대한 CR 을 참조하세요. |
| 아래 매개 변수는 위에서 설명한 특정 제한 사항 및 재생 사용 기능 조합의 약어입니다. | |||
| explicitacp | 아날로그 비디오에 대한 자동 게인 컨트롤 및 색 줄무늬 제한 설정 | 정수 0,1,2,3 | 예: explicitacp:2 해당: avop(guid:C3FD11C6-F8B7-4D20-B008-1DB17D61F2DA,data:AgAAAA==) CRs 섹션 6.5.1 및 3.6.7.2를 참조하세요. 서버 SDK 코드: right.AddAnalogVideoOutputProtection(new ExplicitOutputProtection(new Guid("C3FD11C6-F8B7-4D20-B008-1DB17D61F2DA"), HeightBytes.Concat(WidthBytes).ToArray())) |
| maxres | 최대 유효 해결 디코딩 크기 제한 설정 | 정수 x 정수 | 예: maxres:1920x1080 해당: dvop:(guid:9645E831-E01D-4FFF-8342-0A720E3E028F,data:AAAEOAAAB4A=) CRs 섹션 6.5 및 3.6.5.7.1을 참조하세요. 서버 SDK 코드: right.AddDigitalVideoOutputProtection(new ExplicitOutputProtection(new Guid("9645E831-E01D-4FFF-8342-0A720E3E028F"), BitConverter.GetBytes((int)value)) |
| allowunknownsd | 제한된 해상도를 위해 알 수 없는 출력에 대한 출력 컨트롤 추가 | 거짓, 참 | 예: allowunknownsd:true 해당: playenablers:(B621D91F-EDCC-4035-8D4B-DC71760D43E9) CRs 섹션 3.9.2를 참조하세요. 서버 SDK 코드: right.AddPlayEnabler(new PlayEnabler(new Guid("B621D91F-EDCC-4035-8D4B-DC71760D43E9"))) |
| allowunknownhd | 모든 해상도에 알 수 없는 출력에 대한 출력 컨트롤 추가 | 거짓, 참 | 예: allowunknownhd:true 해당: playenablers:(786627D8-C2A6-44BE-8F88-08AE255B01A7) CRs 섹션 3.9.1을 참조하세요. 서버 SDK 코드: right.AddPlayEnabler(new PlayEnabler(new Guid("786627D8-C2A6-44BE-8F88-08AE255B01A7"))) |
| clientinfo | 특수 리플렉션 기능입니다. 자세한 내용은 이 페이지를 참조하세요 . |