Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Процесс получения лицензии для воспроизведения защищенного содержимого PlayReady обрабатывается сервером лицензии PlayReady. Сервер PlayReady содержит обработчик, который разрешает воспроизведение защищенного клиента PlayReady. Это делается путем предоставления ключа шифрования, который разблокирует зашифрованное содержимое, которое клиент запрашивает для воспроизведения. ** Кроме того, ответ сервера лицензий PlayReady содержит права и ограничения прав, связанные с этим содержимым.
На следующем рисунке показаны шаги, описывающие, как клиент получает лицензию из службы лицензий PlayReady.
- Клиент получает медиаконтент для воспроизведения.
- Клиент инициирует запрос лицензии из службы лицензий PlayReady. Клиент может заранее запросить лицензию перед воспроизведением содержимого или повторно запросить лицензию после начала воспроизведения.
- Сервер лицензирования PlayReady получает запрос от клиента и обрабатывает запрос лицензии.
- Сервер лицензирования PlayReady отправляет ответ на запрос обратно клиенту. Ответ на лицензию будет содержать ключ для разблокировки зашифрованного носителя, а также набор прав и ограничений, которые точно указывают, что можно воспроизвести.
- Клиент получает ответ на лицензию, анализирует права и ограничения прав и начинает воспроизведение.
Разработка и развертывание сервера лицензирования PlayReady
Вам не требуется разрабатывать и развертывать собственную службу лицензий PlayReady. Эти службы можно получить от стороннего поставщика, например партнера PlayReady. Однако если вы решите разработать собственную службу лицензий PlayReady, корпорация Майкрософт предоставляет пакет SDK для playReady Server (SDK) бесплатно для тех, кто хочет запрограммировать собственный сервер лицензий PlayReady. Обратите внимание, что сервер лицензирования PlayReady работает только в Windows Server.
Сервер лицензирования PlayReady можно разрабатывать и развертывать различными способами:
- Разработка сервера лицензий самостоятельно или через стороннюю сторону.
- Работайте с сервером лицензирования самостоятельно или с помощью поставщика службы приложений (ASP).
- Развертывание на физическом сервере или виртуальном сервере.
- Развертывание в локальной среде, в частном облаке или в общедоступном облаке.
Пакет SDK для сервера PlayReady предоставляет следующие функции для серверов лицензий:
- Технология интегрируется в любую сетевую инфраструктуру (прокси-серверы и т. д.).
- Технология интегрируется с любой веб-службой или логикой.
- Поставляется как библиотеки Windows Server, а также код C# в пакете SDK. Включает примеры обработчиков в составе исходного кода.
Образцы
Ниже приведен пример запроса лицензии:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<AcquireLicense xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols">
<challenge>
<Challenge xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols/messages">
<LA xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols" Id="SignedData" xml:space="preserve">
<Version>1</Version>
<ContentHeader>
<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0">
<DATA>
<PROTECTINFO>
<KEYLEN>16</KEYLEN>
<ALGID>AESCTR</ALGID>
</PROTECTINFO>
<KID>jADgM0TEcEeYmaMh4HndNg==</KID>
</DATA>
</WRMHEADER>
</ContentHeader>
<CLIENTINFO>
<CLIENTVERSION>3.1.0.1017</CLIENTVERSION>
</CLIENTINFO>
<RevocationLists>
<RevListInfo><ListID>ioydTlK2p0WXkWklprR5Hw==</ListID><Version>0</Version></RevListInfo>
<RevListInfo><ListID>gC4IKKPHsUCCVhnlttibJw==</ListID><Version>0</Version></RevListInfo>
<RevListInfo><ListID>Ef/RUojT3U6Ct2jqTCChbA==</ListID><Version>0</Version></RevListInfo>
<RevListInfo><ListID>BOZ1zT1UnEqfCf5tJOi/kA==</ListID><Version>0</Version></RevListInfo>
</RevocationLists>
<CustomData>User=Roland</CustomData>
<LicenseNonce>7GYVLC7wvGVR0nqGYXs4DQ==</LicenseNonce>
<ClientTime>1446224160</ClientTime>
<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"></EncryptionMethod>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://schemas.microsoft.com/DRM/2007/03/protocols#ecc256"></EncryptionMethod>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>WMRMServer</KeyName>
</KeyInfo>
<CipherData>
<CipherValue>Yt2ys5Fp83ayPvva8kT2THtEGze5se5YWaP======</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>uLdvYtc5oRk/MD0Dy72ZKH8PuHRI2RBzygKJHGu/M4boyiPOpMQnNlFB30qADHzND7fDwSfZGbOgP/g9OaT1LYDWHU/vq7f0CtiWddtwDSleb651HyQYOmWCcBSY9SVrjXXKITMsQL8PBXQh3O90GZSzS3UKo8OcyhO/yCmTsVWs0EYE98ikWjaPJfoQdvjSfklLjeveqGHhY7YZiSDMTksguLIMycsSTbGelL0P6IIDL7dj===========</CipherValue>
</CipherData>
</EncryptedData>
</LA>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod>
<SignatureMethod Algorithm="http://schemas.microsoft.com/DRM/2007/03/protocols#ecdsa-sha256"></SignatureMethod>
<Reference URI="#SignedData">
<DigestMethod Algorithm="http://schemas.microsoft.com/DRM/2007/03/protocols#sha256"></DigestMethod>
<DigestValue>NnkxTbC9yLGwYWSRfOz3VqKRYd62AGqTnwpSHsCklhI=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>Av2+yCEBdJD9+euMzGzuPb5rYgPlXNszEEr+cF7LwbE/Kln1e8JyhAEdIy14z4U43/oQMvMg40QaOAqv3ElM2g==</SignatureValue>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyValue>
<ECCKeyValue>
<PublicKey>nrZWFO4ExmBomY+Xu5sATbSRi+tjRqMC+bVaKwn5ZAkdoER3nn8eE+yxXA0CkuhhmAmAqYDX7RY2q+MbAvoZuA==</PublicKey>
</ECCKeyValue>
</KeyValue>
</KeyInfo>
</Signature>
</Challenge>
</challenge>
</AcquireLicense>
</soap:Body>
</soap:Envelope>
Ниже приведен пример ответа на лицензию:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<AcquireLicenseResponse xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols">
<AcquireLicenseResult>
<Response xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols/messages">
<LicenseResponse xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols" Id="SignedData">
<Version>1</Version>
<Licenses>
<License>WE1SAAAAAANryW57jI0QQJItXt7rxagIAAMAAQAAAWIAAgAEAAAACAADAAIAAABEAAEAEgAAABAAAAAAVjOhZgAAABMAAAAMVjOhKgABADIAAAAMAAAAHgABADQAAAAKB9AAAAAzAAAACgABAAMACQAAAPIAAQAKAAAAnowA4DNExHBHmJmjIeB53TYAAQADAIAKFe+fsiOCUo/ndSfV1p0YK1qzUAgypRhiMUObPbmJ+P3GMFziaM+O0jHVttk0TAxxGsreh3PumUKJJ1CYMCYGJSgFm7ceuCsOxRBKCJcH+jGVlocmKMw0zrG41DeTrgDLw/rDDEDtmQvIwezIcwUwqWFxq7o5+kYWA4TdwTZNRAAAACoAAABMAAEAQOSjiOqgw3D8yP0vsKUOkh9SDIb3OghTm5812xCi7Y1q+Yr2U6KPQAUDgandzhhSKvebDjmWCIhxcjv+cIE5WIsAAQALAAAAHAABABBDCGMQnJ3JfqzT5K+5nS5k</License>
</Licenses>
<RevInfo>
<Revocation>
<ListID>ioydTlK2p0WXkWklprR5Hw==</ListID>
<ListData>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</ListData>
</Revocation>
<Revocation>
<ListID>gC4IKKPHsUCCVhnlttibJw==</ListID>
<ListData>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</ListData>
</Revocation>
<Revocation>
<ListID>Ef/RUojT3U6Ct2jqTCChbA==</ListID>
<ListData>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</ListData>
</Revocation>
<Revocation>
<ListID>BOZ1zT1UnEqfCf5tJOi/kA==</ListID>
<ListData>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</ListData>
</Revocation>
</RevInfo>
<Acknowledgement>
<TransactionID>265e4a30-72f9-4f46-b41e-102a21ac4bc9</TransactionID>
</Acknowledgement>
<LicenseNonce>7GYVLC7wvGVR0nqGYXs4DQ==</LicenseNonce>
<ResponseID>8qXNFxP4rrn+Rkx3rFTDYQZnfLMkJOm04N2JjWIXZ90=</ResponseID>
<SigningCertificateChain>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</SigningCertificateChain>
</LicenseResponse>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod>
<SignatureMethod Algorithm="http://schemas.microsoft.com/DRM/2007/03/protocols#ecdsa-sha256"></SignatureMethod>
<Reference URI="#SignedData">
<DigestMethod Algorithm="http://schemas.microsoft.com/DRM/2007/03/protocols#sha256"></DigestMethod>
<DigestValue>H9QaFwGEr4BnkJX0nRoztartIba7dcvEU5G1vYu9jTs=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>IVN3sGMpJ+O/3c1eLXRpEi1s7EuRGDLG/hLLdbLvHq7g/vzKEzw0NH0eB5MUiYuD9HaZlYZVbNGxaX74qed+Hw==</SignatureValue>
</Signature>
</Response>
</AcquireLicenseResult>
</AcquireLicenseResponse>
</soap:Body>
</soap:Envelope>