Media Services 動的暗号化を使用してコンテンツを保護するProtect your content with Media Services dynamic encryption

Media Services ロゴ v3media services logo v3


Azure Media Services を使用すると、メディアがコンピューターから離れてから、保存、処理、配信されるまでの全過程をセキュリティ保護できます。Use Azure Media Services to help secure your media from the time it leaves your computer all the way through storage, processing, and delivery. Media Services では、Advanced Encryption Standard (AES-128) または主要な 3 つのデジタル著作権管理 (DRM) システム コンテンツを配信できます。With Media Services, you can deliver your live and on-demand content encrypted dynamically with Advanced Encryption Standard (AES-128) or any of the three major digital rights management (DRM) systems: Microsoft PlayReady, Google Widevine, and Apple FairPlay. Media Services では、承認されたクライアントに AES キーと DRM (PlayReady、Widevine、FairPlay) ライセンスを配信するためのサービスも提供しています。Media Services also provides a service for delivering AES keys and DRM (PlayReady, Widevine, and FairPlay) licenses to authorized clients. コンテンツが AES クリア キーで暗号化され、HTTPS で送信される場合、クライアントに到達するまで平文になりません。If content is encrypted with an AES clear key and is sent over HTTPS, it is not in clear until it reaches the client.

注意

Widevine は、GovCloud リージョンでは使用できません。Widevine is not available in the GovCloud region.

Media Services v3 では、コンテンツ キーがストリーミング ロケーターに関連付けられています (この例を参照)。In Media Services v3, a content key is associated with Streaming Locator (see this example). Media Services キー配信サービスを使用している場合は、Azure Media Services でコンテンツ キーを生成できます。If using the Media Services key delivery service, you can let Azure Media Services generate the content key for you. 独自のキー配信サービスを使用している場合、または 2 つのデータセンターに同じコンテンツ キーが必要な高可用性シナリオに対応する必要がある場合は、コンテンツ キーを自分で生成する必要があります。The content key should be generated yourself if you're using you own key delivery service, or if you need to handle a high availability scenario where you need to have the same content key in two data centers.

プレーヤーがストリームを要求すると、Media Services は指定されたキーを使用して、AES クリア キーまたは DRM 暗号化によってコンテンツを動的に暗号化します。When a stream is requested by a player, Media Services uses the specified key to dynamically encrypt your content by using AES clear key or DRM encryption. ストリームの暗号化を解除するために、プレーヤーは Media Services のキー配信サービスまたは指定したキー配信サービスからキーを要求します。To decrypt the stream, the player requests the key from Media Services key delivery service or the key delivery service you specified. ユーザーによるキーの取得が承認されているかどうかを判断するために、サービスはキーに指定されたコンテンツ キー ポリシーを評価します。To decide if the user is authorized to get the key, the service evaluates the content key policy that you specified for the key.

REST API、または Media Services クライアント ライブラリを使用して、ライセンスとキーの承認および認証ポリシーを構成できます。You can use the REST API, or a Media Services client library to configure authorization and authentication policies for your licenses and keys.

次の図は、Media Services コンテンツ保護のワークフローを示しています。The following image illustrates the workflow for Media Services content protection:

Media Services コンテンツ保護のワークフロー

* 動的暗号化は、AES-128 クリア キー、CBCS、CENC をサポートします。詳細については、サポート マトリックスを参照してください。* Dynamic encryption supports AES-128 clear key, CBCS, and CENC. For details, see the support matrix.

この記事では、Media Services でのコンテンツ保護の理解に役立つ概念と用語について説明します。This article explains concepts and terminology that help you understand content protection with Media Services.

コンテンツ保護システムの主要コンポーネントMain components of a content protection system

コンテンツ保護システムを適切に完了するには、作業の範囲をよく理解する必要があります。To successfully complete your content protection system, you need to fully understand the scope of the effort. 以下のセクションに、実装する必要のある 3 つの部分の概要を示します。The following sections give an overview of three parts that you need to implement.

注意

次の部分に進む前に、以下のセクションの各部分に焦点を当てて、十分にテストしておくことを強くお勧めします。We highly recommended that you focus and fully test each part in the following sections before you move on to the next part. コンテンツ保護システムをテストするには、そのセクションで指定されているツールを使用してください。To test your content protection system, use the tools specified in the sections.

Media Services コードMedia Services code

DRM サンプルからは、.NET を使用してマルチ DRM システムと Media Services v3 を実装する方法がわかります。The DRM sample shows you how to implement a multi-DRM system with Media Services v3 by using .NET. また、Media Services ライセンス/キー配信サービスを使用する方法がわかります。It also shows how to use the Media Services license/key delivery service.

複数の暗号化の種類 (AES-128、PlayReady、Widevine、FairPlay) を使用して各アセットを暗号化することができます。You can encrypt each asset with multiple encryption types (AES-128, PlayReady, Widevine, FairPlay). 合理的な組み合わせについては、「ストリーミング プロトコルと暗号化の種類」を参照してください。To see what makes sense to combine, see Streaming protocols and encryption types.

この例では、次のことを行っています。The example shows how to:

  1. コンテンツ キー ポリシーを作成して構成します。Create and configure a content key policy.

    コンテンツ キー (資産へのアクセスをセキュリティで保護する) をエンド クライアントに届ける方法を構成するには、コンテンツ キー ポリシーを作成します。You create a content key policy to configure how the content key (which provides secure access to your assets) is delivered to end clients:

    • ライセンス配信承認を定義します。Define license delivery authorization. JSON Web トークン (JWT) の要求に基づいて承認チェックのロジックを指定します。Specify the logic of the authorization check based on claims in JSON Web Token (JWT).

    • PlayReadyWidevineFairPlay のライセンスを構成します。Configure PlayReady, Widevine, and/or FairPlay licenses. テンプレートを使用すると、各 DRM の権利とアクセス許可を構成できます。The templates let you configure rights and permissions for each of the DRMs.

      ContentKeyPolicyPlayReadyConfiguration playReadyConfig = ConfigurePlayReadyLicenseTemplate();
      ContentKeyPolicyWidevineConfiguration widevineConfig = ConfigureWidevineLicenseTempate();
      ContentKeyPolicyFairPlayConfiguration fairPlayConfig = ConfigureFairPlayPolicyOptions();
      
  2. 暗号化された資産をストリーミングするように構成されたストリーミング ロケーターを作成します。Create a streaming locator that's configured to stream the encrypted asset.

    ストリーミング ロケーターにはストリーミング ポリシーを関連付ける必要があります。The streaming locator has to be associated with a streaming policy. この例では、"Predefined_MultiDrmCencStreaming" ポリシーに StreamingLocator.StreamingPolicyName を設定します。In the example, we set StreamingLocator.StreamingPolicyName to the "Predefined_MultiDrmCencStreaming" policy.

    PlayReady と Widevine の暗号化が適用され、キーは構成済みの DRM ライセンスに基づいて再生クライアントに配信されます。The PlayReady and Widevine encryptions are applied, and the key is delivered to the playback client based on the configured DRM licenses. また、CBCS (FairPlay) でもストリームを暗号化する場合は、"Predefined_MultiDrmStreaming" ポリシーを使用します。If you also want to encrypt your stream with CBCS (FairPlay), use the "Predefined_MultiDrmStreaming" policy.

    ストリーミング ロケーターは、定義したコンテンツ キー ポリシーにも関連付けられます。The streaming locator is also associated with the content key policy that you defined.

  3. テスト トークンを作成します。Create a test token.

    GetTokenAsync メソッドは、テスト トークンの作成方法を示しています。The GetTokenAsync method shows how to create a test token.

  4. ストリーミング URL を構築します。Build the streaming URL.

    GetDASHStreamingUrlAsync メソッドは、ストリーミング URL を構築する方法を示しています。The GetDASHStreamingUrlAsync method shows how to build the streaming URL. この場合、URL は DASH コンテンツをストリーミングします。In this case, the URL streams the DASH content.

AES または DRM クライアントを使用するプレーヤー。Player with an AES or DRM client

プレーヤー SDK (ネイティブまたはブラウザー ベース) に基づくビデオ プレーヤー アプリは、次の要件を満たす必要があります。A video player app based on a player SDK (either native or browser-based) needs to meet the following requirements:

  • プレーヤー SDK は、必要な DRM クライアントをサポートしている。The player SDK supports the needed DRM clients.
  • プレーヤー SDK は、必要なストリーミング プロトコル (スムーズ、DASH、HTTP ライブ ストリーミング (HLS)) をサポートしている。The player SDK supports the required streaming protocols: Smooth, DASH, and/or HTTP Live Streaming (HLS).
  • プレーヤー SDK は、ライセンス取得要求で JWT トークンを渡す処理に対応できる。The player SDK can handle passing a JWT token in a license acquisition request.

Azure Media Player API を使ってプレーヤーを作成できます。You can create a player by using the Azure Media Player API. 異なる DRM プラットフォームで使う DRM テクノロジを指定するには、Azure Media Player の ProtectionInfo API を使います。Use the Azure Media Player ProtectionInfo API to specify which DRM technology to use on different DRM platforms.

AES または CENC (Widevine および PlayReady) で暗号化されたコンテンツをテストするには、Azure Media Player を使用できます。For testing AES or CENC (Widevine and/or PlayReady) encrypted content, you can use Azure Media Player. 必ず [詳細オプション] を選択し、暗号化オプションを確認します。Make sure that you select Advanced options and check your encryption options.

FairPlay で暗号化されたコンテンツをテストする場合は、このテストプレイヤーを使用してください。If you want to test FairPlay encrypted content, use this test player. プレーヤーは、Widevine、PlayReady、FairPlay DRM、および AES-128 クリア キー暗号化をサポートしています。The player supports Widevine, PlayReady, and FairPlay DRMs, along with AES-128 clear key encryption.

さまざまな DRM をテストするのに適したブラウザーを選択します。Choose the right browser to test different DRMs:

  • Widevine には、Chrome、Opera、または Firefox。Chrome, Opera, or Firefox for Widevine.
  • PlayReady には、Microsoft Edge または Internet Explorer 11。Microsoft Edge or Internet Explorer 11 for PlayReady.
  • FairPlay には、macOS 上の Safari。Safari on macOS for FairPlay.

セキュリティ トークン サービスSecurity token service

セキュリティ トークン サービス (STS) は、バックエンド リソースにアクセスするためのアクセス トークンとして JWT を発行します。A security token service (STS) issues JWT as the access token for back-end resource access. バックエンド リソースとして Azure Media Services ライセンス/キー配信サービスを使用できます。You can use the Azure Media Services license/key delivery service as the back-end resource. STS では次のことを定義する必要があります。An STS has to define the following things:

  • 発行者と対象ユーザー (または範囲)。Issuer and audience (or scope).
  • 要求 (コンテンツ保護におけるビジネス要件によって変わります)。Claims, which are dependent on business requirements in content protection.
  • 署名の検証のための対称検証または非対称検証。Symmetric or asymmetric verification for signature verification.
  • キー ロールオーバーのサポート (必要な場合)。Key rollover support (if necessary).

この STS ツールを使用して STS をテストできます。You can use this STS tool to test the STS. 対称、非対称、およびキーのロールオーバーありの Azure Active Directory (Azure AD) の 3 種類の検証キーがすべてサポートされています。It supports all three types of verification keys: symmetric, asymmetric, or Azure Active Directory (Azure AD) with key rollover.

ストリーミング プロトコルと暗号化の種類Streaming protocols and encryption types

Media Services を使用すると、AES クリアキーまたは DRM 暗号化 (PlayReady、Widevine、または FairPlay を使用) によって動的に暗号化されたコンテンツを配信できます。You can use Media Services to deliver your content encrypted dynamically with AES clear key or DRM encryption by using PlayReady, Widevine, or FairPlay. 現在、HLS、MPEG DASH、およびスムーズ ストリーミングの各形式を暗号化できます。Currently, you can encrypt the HLS, MPEG DASH, and Smooth Streaming formats. 各プロトコルでは、次の暗号化方式がサポートされています。Each protocol supports the following encryption methods.

HLSHLS

HLS プロトコルでは、次のコンテナー形式と暗号化スキームがサポートされます。The HLS protocol supports the following container formats and encryption schemes:

コンテナー形式Container format 暗号化スキームEncryption scheme URL の例URL example
AllAll AESAES https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(format=m3u8-aapl,encryption=cbc)
MPG2-TSMPG2-TS CBCS (FairPlay)CBCS (FairPlay) https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(format=m3u8-aapl,encryption=cbcs-aapl)
CMAF (fmp4)CMAF(fmp4) CBCS (FairPlay)CBCS (FairPlay) https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(format=m3u8-cmaf,encryption=cbcs-aapl)
MPG2-TSMPG2-TS CENC (PlayReady)CENC (PlayReady) https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(format=m3u8-aapl,encryption=cenc)
CMAF (fmp4)CMAF(fmp4) CENC (PlayReady)CENC (PlayReady) https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(format=m3u8-cmaf,encryption=cenc)

HLS/CMAF + FairPlay (HEVC/H.265 を含む) は、次のデバイスでサポートされています。HLS/CMAF + FairPlay (including HEVC/H.265) is supported on the following devices:

  • iOS 11 以降。iOS 11 or later.
  • iPhone 8 以降。iPhone 8 or later.
  • macOS High Sierra (Intel 第 7 世代 CPU 搭載)。macOS High Sierra with Intel 7th Generation CPU.

MPEG-DASHMPEG-DASH

MPEG-DASH プロトコルでは、次のコンテナー形式と暗号化スキームがサポートされます。The MPEG-DASH protocol supports the following container formats and encryption schemes:

コンテナー形式Container format 暗号化スキームEncryption scheme URL の例URL Examples
AllAll AESAES https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(format=mpd-time-csf,encryption=cbc)
CSF (fmp4)CSF(fmp4) CENC (Widevine + PlayReady)CENC (Widevine + PlayReady) https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(format=mpd-time-csf,encryption=cenc)
CMAF (fmp4)CMAF(fmp4) CENC (Widevine + PlayReady)CENC (Widevine + PlayReady) https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(format=mpd-time-cmaf,encryption=cenc)

スムーズ ストリーミングSmooth Streaming

スムーズ ストリーミング プロトコルでは、次のコンテナー形式と暗号化スキームがサポートされます。The Smooth Streaming protocol supports the following container formats and encryption schemes.

ProtocolProtocol コンテナー形式Container format 暗号化スキームEncryption scheme
fMP4fMP4 AESAES https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(encryption=cbc)
fMP4fMP4 CENC (PlayReady)CENC (PlayReady) https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(encryption=cenc)
fMP4fMP4 PIFF 1.1 (PlayReady)PIFF 1.1 (PlayReady) https://amsv3account-usw22.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/ignite.ism/manifest(encryption=piff)

注意

PIFF 1.1 のサポートは、初期の "Silverlight" バージョンの Common Encryption を実装したスマート TV (Samsung、LG) で下位互換性を保つためのソリューションとして提供されています。PIFF 1.1 support is provided as a backwards compatible solution for Smart TV (Samsung, LG) that implemented the early "Silverlight" version of Common Encryption. PIFF 形式は、PIFF 1.1 バージョンの PlayReady 暗号化をサポートしている 2009 ~ 2015 年に出荷された従来の Samsung または LG 製スマート TV をサポートするために必要な場合のみ使用することをお勧めします。It is recommended to only use the PIFF format where needed for support of legacey Samsung or LG Smart TVs shipped between 2009-2015 that supported the PIFF 1.1 version of PlayReady encryption.

ブラウザーBrowsers

一般的なブラウザーでは次の DRM クライアントがサポートされます。Common browsers support the following DRM clients:

BrowserBrowser 暗号化Encryption
ChromeChrome WidevineWidevine
Microsoft Edge、Internet Explorer 11Microsoft Edge, Internet Explorer 11 PlayReadyPlayReady
FirefoxFirefox WidevineWidevine
OperaOpera WidevineWidevine
SafariSafari FairPlayFairPlay

コンテンツ アクセスの制御Controlling content access

コンテンツ キー ポリシーを構成することで、コンテンツにアクセスできるユーザーを制御できます。You can control who has access to your content by configuring the content key policy. Media Services では、キーを要求するユーザーを承認する複数の方法がサポートされています。Media Services supports multiple ways of authorizing users who make key requests. キーをクライアント (プレーヤー) に配信するには、クライアントがポリシーの要件を満たしている必要があります。The client (player) must meet the policy before the key can be delivered to the client. コンテンツ キー ポリシーは、オープン または トークン の制限を持つことができます。The content key policy can have open or token restriction.

オープンの制限のコンテンツ キー ポリシーは、承認を必要としないすべてのユーザーにライセンスを発行するときに使用できます。An open-restricted content key policy may be used when you want to issue license to anyone without authorization. たとえば、収益が広告ベースで、サブスクリプションベースではない場合です。For example, if your revenue is ad-based and not subscription-based.

トークン制限コンテンツ キー ポリシーでは、コンテンツ キーは、ライセンスまたはキー要求で有効な JWT トークンまたは単純 Web トークン (SWT) を提示するクライアントにのみ送信されます。With a token-restricted content key policy, the content key is sent only to a client that presents a valid JWT token or a simple web token (SWT) in the license/key request. このトークンは STS によって発行される必要があります。This token must be issued by an STS.

Azure AD を STS として使用することも、カスタム STS をデプロイすることもできます。You can use Azure AD as an STS or deploy a custom STS. STS は、トークン、トークンの制限の構成で指定した、指定されたキーと問題要求で署名を作成するように構成する必要があります。The STS must be configured to create a token signed with the specified key and issue claims that you specified in the token restriction configuration. Media Services ライセンス/キー配信サービスは、次の両方の条件が存在する場合に、要求されたライセンスまたはキーをクライアントに返します。The Media Services license/key delivery service returns the requested license or key to the client if both of these conditions exist:

  • トークンが有効である。The token is valid.
  • トークン内の要求が、ライセンスまたはキー用に構成されているものと一致する。The claims in the token match those configured for the license or key.

トークン制限ポリシーを構成する際には、プライマリ検証キー、発行者、および対象ユーザーの各パラメーターを指定する必要があります。When you configure the token-restricted policy, you must specify the primary verification key, issuer, and audience parameters. プライマリ検証キーには、トークンの署名に使用されたキーが含まれています。The primary verification key contains the key that the token was signed with. 発行者は、トークンを発行する STS です。The issuer is the STS that issues the token. 対象ユーザー (スコープとも呼ばれる) には、トークンの目的、またはトークンがアクセスを承認するリソースが記述されます。The audience, sometimes called scope, describes the intent of the token or the resource that the token authorizes access to. Media Services ライセンス/キー配信サービスでは、トークン内のこれらの値がテンプレート内の値と一致することが検証されます。The Media Services license/key delivery service validates that these values in the token match the values in the template.

トークン再生の防止Token replay prevention

トークン再生の防止 機能を使用すると、Media Services のユーザーは、同じトークンを使用してキーまたはライセンスを要求できる回数に制限を設定できます。The Token Replay Prevention feature allows Media Services customers to set a limit on how many times the same token can be used to request a key or a license. ユーザーは urn:microsoft:azure:mediaservices:maxuses の種類の要求をトークンに追加できます。この値は、トークンを使用してライセンスまたはキーを取得できる回数です。The customer can add a claim of type urn:microsoft:azure:mediaservices:maxuses in the token, where the value is the number of times the token can be used to acquire a license or key. キー配信に対して同じトークンを使用する後続のすべての要求では、"許可されていません" 応答が返されます。All subsequent requests with the same token to Key Delivery will return an unauthorized response. DRM サンプルで、要求を追加する方法を参照してください。See how to add the claim in the DRM sample.

考慮事項Considerations

  • ユーザーは、トークンの生成を制御する必要があります。Customers must have control over token generation. 要求は、トークン自体に配置する必要があります。The claim needs to be placed in the token itself.
  • この機能を使用すると、要求を受信してから有効期限切れまでの時間が 1 時間を超えているトークンを含む要求は、"許可されていません" 応答により拒否されます。When using this feature, requests with tokens whose expiry time is more than one hour away from the time the request is received are rejected with an unauthorized response.
  • トークンは、その署名によって一意に識別されます。Tokens are uniquely identified by their signature. ペイロードに変更が加えられる (たとえば、有効期限や要求が更新される) と、トークンの署名が変更され、以前にキー配信が確認したことがない新しいトークンとしてカウントされます。Any change to the payload (for example, update to the expiry time or the claim) changes the signature of the token and it will count as a new token that Key Delivery hasn't come across before.
  • ユーザーによって設定された maxuses 値をトークンが超えると、再生は失敗します。Playback fails if the token has exceeded the maxuses value set by the customer.
  • この機能は、既存の保護されているすべてのコンテンツに使用できます (発行されたトークンのみを変更する必要があります)。This feature can be used for all existing protected content (only the token issued needs to be changed).
  • この機能は、JWT と SWT の両方で動作します。This feature works with both JWT and SWT.

カスタム STS の使用Using a custom STS

ユーザーは、カスタム STS を使ってトークンを提供することがあります。A customer might choose to use a custom STS to provide tokens. 原因は次のとおりです。Reasons include:

  • ユーザーが使用する ID プロバイダー (IDP) が STS をサポートしていない場合。The identity provider (IDP) used by the customer doesn't support STS. この場合は、カスタム STS が選択肢になります。In this case, a custom STS might be an option.

  • ユーザーが、STS とユーザーのサブスクライバー請求システムの統合において、より柔軟性の高い、または厳密な制御を必要とする場合。The customer might need more flexible or tighter control to integrate STS with the customer's subscriber billing system.

    たとえば、OTT サービス運営会社は、プレミアム、ベーシック スポーツなど、複数のサブスクライバー パッケージを提供する場合があります。For example, an OTT service operator might offer multiple subscriber packages, such as premium, basic, and sports. 運営会社は、特定のパッケージのコンテンツだけが利用可能になるように、トークンの要求をサブスクライバーのパッケージと一致させる必要があります。The operator might want to match the claims in a token with a subscriber's package so that only the contents in a specific package are made available. この場合、カスタム STS は必要な柔軟性と制御を提供します。In this case, a custom STS provides the needed flexibility and control.

  • カスタム要求をトークンに含めて、異なる DRM ライセンス パラメーター (サブスクリプション ライセンスとレンタル ライセンス) を持つさまざまな ContentKeyPolicyOptions を選択するため。To include custom claims in the token to select between different ContentKeyPolicyOptions with different DRM license parameters (a subscription license versus a rental license).

  • トークンがアクセスを許可するキーのコンテンツ キー ID を表す要求を含めるため。To include a claim representing the content key identifier of the key that the token grants access to.

カスタム STS を使うときは、2 つの変更を行う必要があります。When you use a custom STS, two changes must be made:

  • 資産のライセンス配信サービスを構成するときに、Azure AD からの現在のキーではなく、カスタム STS での検証に使うセキュリティ キーを指定する必要がありますWhen you configure license delivery service for an asset, you need to specify the security key used for verification by the custom STS instead of the current key from Azure AD.
  • JTW トークンが生成されるときに、現在の Azure AD での X 509 証明書の秘密キーではなく、セキュリティ キーを指定します。When a JTW token is generated, a security key is specified instead of the private key of the current X509 certificate in Azure AD.

セキュリティ キーには次の 2 種類があります。There are two types of security keys:

  • 対称キー:JWT の生成と検証に同じキーが使われます。Symmetric key: The same key is used to generate and to verify a JWT.
  • 非対称キー:X509 証明書の公開/秘密キー ペアの秘密キーが JWT の暗号化/生成に使われ、公開キーがトークンの検証に使われます。Asymmetric key: A public-private key pair in an X509 certificate is used with a private key to encrypt/generate a JWT and with the public key to verify the token.

開発プラットフォームとして .NET Framework/C# を使う場合、非対称セキュリティ キーに使われる X509 証明書のキーの長さは 2048 ビット以上でなければなりません。If you use .NET Framework/C# as your development platform, the X509 certificate used for an asymmetric security key must have a key length of at least 2048. このキーの長さは、.NET Framework の System.IdentityModel.Tokens.X509AsymmetricSecurityKey クラスの要件です。This key length is a requirement of the class System.IdentityModel.Tokens.X509AsymmetricSecurityKey in .NET Framework. そうでない場合は、次の例外がスローされます。IDX10630:署名の "System.IdentityModel.Tokens.X509AsymmetricSecurityKey" は "2048" ビット以上でなければなりません。Otherwise, the following exception is thrown: IDX10630: The 'System.IdentityModel.Tokens.X509AsymmetricSecurityKey' for signing can't be smaller than '2048' bits.

カスタム キーとライセンス取得 URLCustom key and license acquisition URL

異なるライセンス/キー配信サービス (Media Services 以外) を指定する場合は、次のテンプレートを使用します。Use the following templates if you want to specify a different license/key delivery service (not Media Services). テンプレート内には置換可能なフィールドが 2 つあり、資産ごとにストリーミング ポリシーを作成する代わりに多数の資産でストリーミング ポリシーを共有できます。The two replaceable fields in the templates are there so that you can share your streaming policy across many assets instead of creating a streaming policy per asset.

  • EnvelopeEncryption.CustomKeyAcquisitionUrlTemplate:エンドユーザー プレーヤーにキーを配信するカスタムサービスの URL のテンプレート。EnvelopeEncryption.CustomKeyAcquisitionUrlTemplate: Template for the URL of the custom service that delivers keys to end-user players. キーの発行に Azure Media Services を使用しているときには必要ありません。It isn't required when you're using Azure Media Services for issuing keys.

    このテンプレートでは、置換できるトークンがサポートされ、実行時にサービスによって要求固有の値に更新されます。The template supports replaceable tokens that the service will update at runtime with the value specific to the request. 現在サポートされているトークン値は次のとおりです。The currently supported token values are:

    • {AlternativeMediaId}。これは、StreamingLocatorId.AlternativeMediaId の値に置き換えられます。{AlternativeMediaId}, which is replaced with the value of StreamingLocatorId.AlternativeMediaId.
    • {ContentKeyId}。これは、要求されたキーの識別子の値に置き換えられます。{ContentKeyId}, which is replaced with the value of the identifier of the requested key.
  • StreamingPolicyPlayReadyConfiguration.CustomLicenseAcquisitionUrlTemplate:エンドユーザー プレーヤーにライセンスを配信するカスタム サービスの URL のテンプレート。StreamingPolicyPlayReadyConfiguration.CustomLicenseAcquisitionUrlTemplate: Template for the URL of the custom service that delivers licenses to end-user players. ライセンスの発行に Azure Media Services を使用しているときには必要ありません。It isn't required when you're using Azure Media Services for issuing licenses.

    このテンプレートでは、置換できるトークンがサポートされ、実行時にサービスによって要求固有の値に更新されます。The template supports replaceable tokens that the service will update at runtime with the value specific to the request. 現在サポートされているトークン値は次のとおりです。The currently supported token values are:

    • {AlternativeMediaId}。これは、StreamingLocatorId.AlternativeMediaId の値に置き換えられます。{AlternativeMediaId}, which is replaced with the value of StreamingLocatorId.AlternativeMediaId.
    • {ContentKeyId}。これは、要求されたキーの識別子の値に置き換えられます。{ContentKeyId}, which is replaced with the value of the identifier of the requested key.
  • StreamingPolicyWidevineConfiguration.CustomLicenseAcquisitionUrlTemplate:前のテンプレートと同じですが、Widevine でのみ使用されます。StreamingPolicyWidevineConfiguration.CustomLicenseAcquisitionUrlTemplate: Same as the previous template, only for Widevine.

  • StreamingPolicyFairPlayConfiguration.CustomLicenseAcquisitionUrlTemplate:前のテンプレートと同じですが、FairPlay でのみ使用されます。StreamingPolicyFairPlayConfiguration.CustomLicenseAcquisitionUrlTemplate: Same as the previous template, only for FairPlay.

次に例を示します。For example:

streamingPolicy.EnvelopEncryption.customKeyAcquisitionUrlTemplate = "https://mykeyserver.hostname.com/envelopekey/{AlternativeMediaId}/{ContentKeyId}";

ContentKeyId は、要求されたキーの値を持っています。ContentKeyId has a value of the requested key. 要求をユーザー側のエンティティにマップする場合は、AlternativeMediaId を使用できます。You can use AlternativeMediaId if you want to map the request to an entity on your side. たとえば、AlternativeMediaId を使用すると、アクセス許可を調べるときに役立ちます。For example, AlternativeMediaId can be used to help you look up permissions.

カスタムのライセンス/キーの取得 URL を使用する REST の例については、「ストリーミング ポリシー - 作成」をご覧ください。For REST examples that use custom license/key acquisition URLs, see Streaming Policies - Create.

注意

Widevine は Google Inc. によって提供されるサービスであり、Google Inc. の利用規約とプライバシー ポリシーが適用されます。Widevine is a service provided by Google Inc. and subject to the terms of service and Privacy Policy of Google, Inc.

トラブルシューティングTroubleshoot

MPE_ENC_ENCRYPTION_NOT_SET_IN_DELIVERY_POLICY エラーが発生する場合は、適切なストリーミング ポリシーを指定していることを確認してください。If you get the MPE_ENC_ENCRYPTION_NOT_SET_IN_DELIVERY_POLICY error, make sure that you specify the appropriate streaming policy.

_NOT_SPECIFIED_IN_URLで終わるエラーが発生した場合は、URL に暗号化形式を指定したことを確認してください。If you get errors that end with _NOT_SPECIFIED_IN_URL, make sure that you specify the encryption format in the URL. たとえば …/manifest(format=m3u8-cmaf,encryption=cbcs-aapl) です。An example is …/manifest(format=m3u8-cmaf,encryption=cbcs-aapl). ストリーミング プロトコルと暗号化の種類」を参照してください。See Streaming protocols and encryption types.

質問、フィードバックの送信、最新情報の入手Ask questions, give feedback, get updates

Azure Media Services community (Azure Media Services コミュニティ)」を参照して、さまざまな質問の方法、フィードバックする方法、Media Services に関する最新情報の入手方法を確認してください。Check out the Azure Media Services community article to see different ways you can ask questions, give feedback, and get updates about Media Services.

次のステップNext steps