共用方式為


PlayReady 授權伺服器

PlayReady 授權伺服器會處理取得 PlayReady 受保護內容播放授權的程序。 PlayReady 伺服器包含授權播放受 PlayReady 保護內容的處理程序。 其方式是提供加密金鑰,以解除鎖定用戶端要求播放的加密內容。 此外,PlayReady 授權伺服器回應包含該內容的許可權和許可權限制。

下圖顯示說明用戶端如何從 PlayReady 授權服務取得授權的步驟。

影片服務架構

  1. 用戶端會取得要播放的媒體。
  2. 用戶端會從 PlayReady 授權服務起始授權要求。 客戶端可以在播放內容之前主動要求授權,或者在開始播放後才發現需要授權時,被動要求授權。
  3. PlayReady 授權伺服器會從用戶端接收要求,並處理授權要求。
  4. PlayReady 授權伺服器會將回應傳回給用戶端。 授權回應會包含用來解除鎖定加密媒體的密鑰,以及一組許可權和許可權限制,指定可播放的確切內容。
  5. 用戶端會收到授權回應、剖析許可權和許可權限制,並開始播放。

PlayReady 授權伺服器的開發和部署

您不需要開發及部署自己的 PlayReady 授權服務。 您可以從第三方取得這些服務,例如 PlayReady 合作夥伴。 不過,如果您決定開發自己的 PlayReady 授權服務,Microsoft免費提供 PlayReady Server 軟體開發工具包 (SDK) 給想要自行設計 PlayReady 授權伺服器的人員。 請注意,PlayReady 授權伺服器只會在 Windows Server 上執行。

PlayReady 授權伺服器可以透過多種方式開發及部署:

  • 自行或透過第三方開發授權伺服器。
  • 自行操作授權伺服器,或透過應用程式服務提供者(ASP)管理。
  • 部署在實體伺服器或虛擬伺服器上。
  • 在內部部署、私人雲端或公用雲端中部署。

PlayReady Server SDK 為授權伺服器提供下列功能:

  • 技術會整合到任何網路基礎結構上(Proxy 等等)。
  • 技術會與任何 Web 服務或邏輯整合。
  • 以 Windows Server 連結庫的形式傳遞,加上 SDK 中的 C# 程式代碼。 在原始碼中包含範例處理程式。

範例

以下是授權要求範例:

<?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>

另請參閱

PlayReady 測試伺服器