Schützen Sie Ihren Inhalt mit der dynamischen Verschlüsselung von Media ServicesProtect your content with Media Services dynamic encryption

Verwenden Sie Azure Media Services, um Ihre Medien ab dem Zeitpunkt, an dem sie Ihren Computer verlassen, während des gesamten Prozesses der Speicherung, Verarbeitung und Übermittlung sichern.Use Azure Media Services to help secure your media from the time it leaves your computer all the way through storage, processing, and delivery. Mit Media Services können Sie Ihre zu übermittelnden Live- und On-Demand-Inhalte dynamisch mit Advanced Encryption Standard (AES-128) oder einem der drei wichtigsten DRM-Systeme verschlüsseln: Microsoft PlayReady, Google Widevine und Apple FairPlay.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 bietet auch einen Dienst für die Übermittlung von AES-Schlüsseln und DRM-Lizenzen (PlayReady, Widevine und FairPlay) an autorisierte Clients.Media Services also provides a service for delivering AES keys and DRM (PlayReady, Widevine, and FairPlay) licenses to authorized clients.

In Media Services v3 ist dem Streaminglocator ein Inhaltsschlüssel zugeordnet (siehe dieses Beispiel).In Media Services v3, a content key is associated with Streaming Locator (see this example). Bei Verwendung des Media Services-Schlüsselübermittlungsdiensts kann der Inhaltsschlüssel durch Azure Media Services generiert werden.If using the Media Services key delivery service, you can let Azure Media Services generate the content key for you. Sie sollten den Inhaltsschlüssel selbst generieren, wenn Sie Ihren eigenen Schlüsselbereitstellungsdienst verwenden oder ein Hochverfügbarkeitsszenario, sodass Sie denselben Inhaltsschlüssel in zwei Rechenzentren benötigen.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.

Wenn ein Player einen Stream anfordert, verwendet Media Services den angegebenen Schlüssel, um den Inhalt dynamisch mit einem unverschlüsselten AES-Schlüssel oder per DRM-Verschlüsselung zu verschlüsseln.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. Um den Stream zu entschlüsseln, fordert der Player den Schlüssel vom Media Services-Schlüsselübermittlungsdienst oder dem von Ihnen angegebenen Schlüsselübermittlungsdienst an.To decrypt the stream, the player requests the key from Media Services key delivery service or the key delivery service you specified. Um zu entscheiden, ob der Benutzer berechtigt ist, den Schlüssel zu erhalten, wertet der Dienst die Richtlinie für Inhaltsschlüssel aus, die Sie für den Schlüssel angegeben haben.To decide if the user is authorized to get the key, the service evaluates the content key policy that you specified for the key.

Zum Konfigurieren von Autorisierungs- und Authentifizierungsrichtlinien für Ihre Lizenzen und Schlüssel können Sie die REST-API oder eine Media Services-Clientbibliothek verwenden.You can use the REST API, or a Media Services client library to configure authorization and authentication policies for your licenses and keys.

Die folgende Abbildung veranschaulicht den Workflow für Media Services-Inhaltsschutz:The following image illustrates the workflow for Media Services content protection:

Workflow für Media Services-Inhaltsschutz

* Die dynamische Verschlüsselung unterstützt AES-128 mit unverschlüsseltem Schlüssel, CBCS und CENC. Details finden Sie in der Unterstützungsmatrix.* Dynamic encryption supports AES-128 clear key, CBCS, and CENC. For details, see the support matrix.

In diesem Artikel werden Konzepte und Begriffe erläutert, die Ihnen helfen, den Inhaltsschutz mit Media Services zu verstehen.This article explains concepts and terminology that help you understand content protection with Media Services.

Hauptkomponenten eines InhaltsschutzsystemsMain components of a content protection system

Für ein erfolgreiches Abschließen Ihres Inhaltsschutzsystems muss Ihnen der Umfang der Maßnahmen genau bekannt sein.To successfully complete your content protection system, you need to fully understand the scope of the effort. Die folgenden Abschnitte geben eine Übersicht über drei Komponenten, die Sie implementieren müssen.The following sections give an overview of three parts that you need to implement.

Hinweis

Es wird dringend empfohlen, dass Sie sich auf jede Komponente in den folgenden Abschnitten konzentrieren und vollständige Tests durchführen, bevor Sie mit der nächsten Komponente fortfahren.We highly recommended that you focus and fully test each part in the following sections before you move on to the next part. Verwenden Sie zum Testen Ihres Inhaltsschutzsystems die in den Abschnitten angegebenen Tools.To test your content protection system, use the tools specified in the sections.

Media Services-CodeMedia Services code

Das DRM-Beispiel zeigt Ihnen die Implementierung eines Multi-DRM-Systems mit Media Services v3 über .NET.The DRM sample shows you how to implement a multi-DRM system with Media Services v3 by using .NET. Zudem zeigt es die Verwendung des Media Services-Diensts zur Lizenz-/Schlüsselbereitstellung.It also shows how to use the Media Services license/key delivery service.

Sie können jedes Medienobjekt mit mehreren Verschlüsselungstypen (AES-128, PlayReady, Widevine, FairPlay) verschlüsseln.You can encrypt each asset with multiple encryption types (AES-128, PlayReady, Widevine, FairPlay). Informationen zu sinnvollen Kombinationen finden Sie unter Streamingprotokolle und Verschlüsselungstypen.To see what makes sense to combine, see Streaming protocols and encryption types.

Das Beispiel veranschaulicht die folgenden Schritte:The example shows how to:

  1. Erstellen und konfigurieren Sie eine Richtlinie für Inhaltsschlüssel.Create and configure a content key policy.

    Sie erstellen eine Richtlinie für Inhaltsschlüssel, um zu konfigurieren, wie der Inhaltsschlüssel (der sicheren Zugriff auf Ihre Medienobjekte bereitstellt) an Endclients übermittelt wird:You create a content key policy to configure how the content key (which provides secure access to your assets) is delivered to end clients:

    • Definieren Sie die Autorisierung zur Lizenzbereitstellung.Define license delivery authorization. Geben Sie die Logik der Autorisierungsprüfung basierend auf Ansprüchen in JSON Web Token (JWT) an.Specify the logic of the authorization check based on claims in JSON Web Token (JWT).

    • Konfigurieren Sie die Lizenzen PlayReady, Widevine und/oder FairPlay.Configure PlayReady, Widevine, and/or FairPlay licenses. Mit den Vorlagen können Sie die Rechte und Berechtigungen für die einzelnen DRMs konfigurieren.The templates let you configure rights and permissions for each of the DRMs.

      ContentKeyPolicyPlayReadyConfiguration playReadyConfig = ConfigurePlayReadyLicenseTemplate();
      ContentKeyPolicyWidevineConfiguration widevineConfig = ConfigureWidevineLicenseTempate();
      ContentKeyPolicyFairPlayConfiguration fairPlayConfig = ConfigureFairPlayPolicyOptions();
      
  2. Erstellen Sie einen Streaminglocator, der so konfiguriert ist, dass er das verschlüsselte Objekt streamen kann.Create a streaming locator that's configured to stream the encrypted asset.

    Der Streaminglocator muss einer Streamingrichtlinie zugeordnet sein.The streaming locator has to be associated with a streaming policy. In diesem Beispiel wird StreamingLocator.StreamingPolicyName auf die Richtlinie „Predefined_MultiDrmCencStreaming“ festgelegt.In the example, we set StreamingLocator.StreamingPolicyName to the "Predefined_MultiDrmCencStreaming" policy.

    Die PlayReady- und Widevine-Verschlüsselungen werden angewendet, und der Schlüssel wird basierend auf den konfigurierten DRM-Lizenzen an den Wiedergabeclient übermittelt.The PlayReady and Widevine encryptions are applied, and the key is delivered to the playback client based on the configured DRM licenses. Wenn Sie den Stream auch mit CBCS (FairPlay) verschlüsseln möchten, verwenden Sie die Richtlinie „Predefined_MultiDrmStreaming“.If you also want to encrypt your stream with CBCS (FairPlay), use the "Predefined_MultiDrmStreaming" policy.

    Der Streaminglocator wird außerdem der von Ihnen definierten Richtlinie für Inhaltsschlüssel zugeordnet.The streaming locator is also associated with the content key policy that you defined.

  3. Erstellen Sie einen Testtoken.Create a test token.

    Die GetTokenAsync-Methode zeigt, wie Sie ein Testtoken erstellen.The GetTokenAsync method shows how to create a test token.

  4. Erstellen Sie die Streaming-URL.Build the streaming URL.

    Die GetDASHStreamingUrlAsync-Methode zeigt, wie Sie die Streaming-URL erstellen.The GetDASHStreamingUrlAsync method shows how to build the streaming URL. In diesem Fall streamt die URL den DASH-Inhalt.In this case, the URL streams the DASH content.

Player mit einem AES- oder DRM-ClientPlayer with an AES or DRM client

Eine Videoplayer-App basierend auf einem Player-SDK (nativ oder browserbasiert) muss die folgenden Anforderungen erfüllen:A video player app based on a player SDK (either native or browser-based) needs to meet the following requirements:

  • Das Player-SDK unterstützt die erforderlichen DRM-Clients.The player SDK supports the needed DRM clients.
  • Das Player-SDK unterstützt die erforderlichen Streamingprotokolle: Smooth, DASH und/oder HTTP Live Streaming (HLS).The player SDK supports the required streaming protocols: Smooth, DASH, and/or HTTP Live Streaming (HLS).
  • Das Player-SDK kann die Übergabe eines JWT-Tokens in einer Lizenzerwerbsanforderung verarbeiten.The player SDK can handle passing a JWT token in a license acquisition request.

Sie können mithilfe der Azure Media Player-API einen Player erstellen.You can create a player by using the Azure Media Player API. Verwenden Sie die ProtectionInfo-API von Azure Media Player, um anzugeben, welche DRM-Technologie auf unterschiedlichen DRM-Plattformen verwendet werden soll.Use the Azure Media Player ProtectionInfo API to specify which DRM technology to use on different DRM platforms.

Zum Testen von mit AES oder CENC (Widevine und/oder PlayReady) verschlüsselten Inhalten können Sie Azure Media Player verwenden.For testing AES or CENC (Widevine and/or PlayReady) encrypted content, you can use Azure Media Player. Stellen Sie sicher, dass Sie Erweiterte Optionen auswählen und Ihre Verschlüsselungsoptionen prüfen.Make sure that you select Advanced options and check your encryption options.

Wenn Sie mit FairPlay verschlüsselte Inhalte testen möchten, verwenden Sie diesen Testplayer.If you want to test FairPlay encrypted content, use this test player. Der Player unterstützt Widevine-, PlayReady- und FairPlay-DRMs sowie die AES-128-Verschlüsselung mit unverschlüsselten Schlüsseln.The player supports Widevine, PlayReady, and FairPlay DRMs, along with AES-128 clear key encryption.

Wählen Sie den richtigen Browser zum Testen der verschiedenen DRMs aus:Choose the right browser to test different DRMs:

  • Chrome, Opera oder Firefox für Widevine.Chrome, Opera, or Firefox for Widevine.
  • Microsoft Edge oder Internet Explorer 11 für PlayReady.Microsoft Edge or Internet Explorer 11 for PlayReady.
  • Safari unter macOS für FairPlay.Safari on macOS for FairPlay.

SicherheitstokendienstSecurity token service

Ein Sicherheitstokendienst (Security Token Service, STS) gibt JWT als Zugriffstoken für den Back-End-Ressourcenzugriff aus.A security token service (STS) issues JWT as the access token for back-end resource access. Sie können den Azure Media Services-Diensts zur Lizenz-/Schlüsselbereitstellung als Back-End-Ressource verwenden.You can use the Azure Media Services license/key delivery service as the back-end resource. Ein Sicherheitstokendienst muss Folgendes definieren:An STS has to define the following things:

  • Aussteller und Zielgruppe (oder Gültigkeitsbereich).Issuer and audience (or scope).
  • Ansprüche, die von Geschäftsanforderungen für den Inhaltsschutz abhängen.Claims, which are dependent on business requirements in content protection.
  • Symmetrische oder asymmetrische Überprüfung für die Signaturüberprüfung.Symmetric or asymmetric verification for signature verification.
  • Unterstützung des Schlüsselrollovers (sofern erforderlich).Key rollover support (if necessary).

Mit diesem STS-Tool können Sie den Sicherheitstokendienst testen.You can use this STS tool to test the STS. Es unterstützt alle drei Typen von Überprüfungsschlüsseln: symmetrisch, asymmetrisch oder Azure Active Directory (Azure AD) mit Schlüsselrollover.It supports all three types of verification keys: symmetric, asymmetric, or Azure Active Directory (Azure AD) with key rollover.

Streamingprotokolle und VerschlüsselungstypenStreaming protocols and encryption types

Mit Media Services können Sie Ihre zu übermittelnden Inhalte dynamisch mit unverschlüsselten AES-Schlüsseln oder per DRM-Verschlüsselung über Microsoft PlayReady, Google Widevine oder FairPlay verschlüsseln.You can use Media Services to deliver your content encrypted dynamically with AES clear key or DRM encryption by using PlayReady, Widevine, or FairPlay. Zurzeit können Sie die Formate HLS, MPEG DASH und Smooth Streaming verschlüsseln.Currently, you can encrypt the HLS, MPEG DASH, and Smooth Streaming formats. Jedes Protokoll unterstützt die folgenden Verschlüsselungsmethoden.Each protocol supports the following encryption methods.

HLSHLS

Das HLS-Protokoll unterstützt folgende Containerformate und Verschlüsselungsschemas:The HLS protocol supports the following container formats and encryption schemes:

ContainerformatContainer format VerschlüsselungsschemaEncryption scheme URL-BeispielURL 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 (einschließlich HEVC/H.265) wird auf folgenden Geräten unterstützt:HLS/CMAF + FairPlay (including HEVC/H.265) is supported on the following devices:

  • iOS 11 oder höher.iOS 11 or later.
  • iPhone 8 oder höher.iPhone 8 or later.
  • MacOS High Sierra mit Intel-CPU der 7. Generation.MacOS High Sierra with Intel 7th Generation CPU.

MPEG-DASHMPEG-DASH

Das MPEG-DASH-Protokoll unterstützt folgende Containerformate und Verschlüsselungsschemas:The MPEG-DASH protocol supports the following container formats and encryption schemes:

ContainerformatContainer format VerschlüsselungsschemaEncryption scheme URL-BeispieleURL 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 StreamingSmooth Streaming

Das Smooth Streaming-Protokoll unterstützt folgende Containerformate und Verschlüsselungsschemas.The Smooth Streaming protocol supports the following container formats and encryption schemes.

ProtocolProtocol ContainerformatContainer format VerschlüsselungsschemaEncryption 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)

BrowserBrowsers

Folgende DRM-Clients werden von gängigen Browsern unterstützt:Common browsers support the following DRM clients:

BrowserBrowser VerschlüsselungEncryption
ChromeChrome WidevineWidevine
Microsoft Edge, Internet Explorer 11Microsoft Edge, Internet Explorer 11 PlayReadyPlayReady
FirefoxFirefox WidevineWidevine
OperaOpera WidevineWidevine
SafariSafari FairPlayFairPlay

Steuern des InhaltszugriffsControlling content access

Sie können steuern, wer Zugriff auf Ihre Inhalte hat, indem Sie die Richtlinie für Inhaltsschlüssel konfigurieren.You can control who has access to your content by configuring the content key policy. Media Services unterstützt mehrere Möglichkeiten zur Autorisierung von Benutzern, die Schlüssel anfordern.Media Services supports multiple ways of authorizing users who make key requests. Der Client (Player) muss die Richtlinie erfüllen, bevor der Schlüssel an den Client übermittelt werden kann.The client (player) must meet the policy before the key can be delivered to the client. Die Richtlinie für Inhaltsschlüssel kann eine offene oder eine Tokeneinschränkung enthalten.The content key policy can have open or token restriction.

Eine Richtlinie für Inhaltsschlüssel mit offener Einschränkung kann verwendet werden, wenn Sie eine Lizenz für Personen ohne Autorisierung ausgeben möchten.An open-restricted content key policy may be used when you want to issue license to anyone without authorization. Beispielsweise wenn Ihr Umsatz AD-basiert und nicht abonnementbasiert ist.For example, if your revenue is ad-based and not subscription-based.

Bei einer Richtlinie für Inhaltsschlüssel mit Tokeneinschränkung wird der Inhaltsschlüssel nur an einen Client gesendet, der in der Lizenz-/Schlüsselanforderung ein gültiges JWT-Token oder ein einfaches Webtoken (Simple Web Token, SWT) präsentiert.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. Dieses Token muss von einem Sicherheitstokendienst (STS) ausgestellt werden.This token must be issued by an STS.

Sie können Azure AD als STS verwenden oder einen benutzerdefinierten STS bereitstellen.You can use Azure AD as an STS or deploy a custom STS. Der STS muss für die Erstellung eines mit dem angegebenen Schlüssel signierten Tokens und die Ausstellungsansprüche konfiguriert sein, die Sie in der Konfiguration der Tokeneinschränkung angegeben haben.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. Der Media Services-Dienst zur Lizenz-/Schlüsselbereitstellung gibt die angeforderte Lizenz bzw. den angeforderten Schlüssel an den Client zurück, wenn die beiden folgenden Bedingungen erfüllt sind:The Media Services license/key delivery service returns the requested license or key to the client if both of these conditions exist:

  • Das Token ist gültig.The token is valid.
  • Die Ansprüche im Token entsprechen denen, die für die Lizenz oder den Schlüssel konfiguriert sind.The claims in the token match those configured for the license or key.

Bei der Konfiguration der Richtlinie mit Tokeneinschränkung müssen die Parameter für den primären Verifizierungsschlüssel (primary verification key), den Aussteller (issuer) und die Zielgruppe (audience) angegeben werden.When you configure the token-restricted policy, you must specify the primary verification key, issuer, and audience parameters. Der primäre Verifizierungsschlüssel enthält den Schlüssel, mit dem das Token signiert wurde.The primary verification key contains the key that the token was signed with. Der Aussteller ist der Sicherheitstokendienst, der das Token ausstellt.The issuer is the STS that issues the token. „Audience“ (manchmal auch „Scope“) beschreibt den Verwendungszweck des Tokens oder die Ressource, auf die durch das Token Zugriff gewährt wird.The audience, sometimes called scope, describes the intent of the token or the resource that the token authorizes access to. Der Media Services-Dienst zur Lizenz-/Schlüsselbereitstellung überprüft, ob diese Werte im Token mit den Werten in der Vorlage übereinstimmen.The Media Services license/key delivery service validates that these values in the token match the values in the template.

Verhindern der TokenwiedergabeToken replay prevention

Mit dem Feature zum Verhindern der Tokenwiedergabe können Media Services-Kunden einen Grenzwert festlegen, der bestimmt, wie oft ein Token zum Anfordern eines Schlüssels oder einer Lizenz verwendet werden kann.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. Der Kunde kann einen Anspruch vom Typ urn:microsoft:azure:mediaservices:maxuses im Token hinzufügen, wobei der Wert die Häufigkeit ist, mit der das Token für den Erwerb einer Lizenz oder eines Schlüssels verwendet werden kann.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. Bei allen nachfolgenden Anforderungen mit demselben Token für die Schlüsselbereitstellung wird eine nicht autorisierte Antwort zurückgegeben.All subsequent requests with the same token to Key Delivery will return an unauthorized response. Informationen zum Hinzufügen des Anspruchs finden Sie im DRM-Beispiel.See how to add the claim in the DRM sample.

ÜberlegungenConsiderations

  • Kunden müssen die Kontrolle über die Tokengenerierung haben.Customers must have control over token generation. Der Anspruch muss in das Token selbst eingefügt werden.The claim needs to be placed in the token itself.
  • Bei Verwendung dieser Funktion werden Anforderungen mit Token, deren Ablaufzeit mehr als eine Stunde vor dem Zeitpunkt liegt, zu dem die Anforderung empfangen wird, werden mit der Antwort „nicht autorisiert“ abgelehnt.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.
  • Token werden durch ihre Signatur eindeutig identifiziert.Tokens are uniquely identified by their signature. Jede Änderung an der Nutzlast (z. B. eine Aktualisierung der Ablaufzeit oder des Anspruchs) ändert die Signatur des Tokens, und es zählt als ein neues Token, das bei der Schlüsselbereitstellung zuvor noch nicht aufgetreten ist.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.
  • Die Wiedergabe schlägt fehl, wenn das Token den vom Kunden festgelegten maxuses-Wert überschritten hat.Playback fails if the token has exceeded the maxuses value set by the customer.
  • Diese Funktion kann für alle vorhandenen geschützten Inhalte verwendet werden (nur das ausgegebene Token muss geändert werden).This feature can be used for all existing protected content (only the token issued needs to be changed).
  • Diese Funktion kann sowohl mit JWT als auch mit SWT verwendet werden.This feature works with both JWT and SWT.

Verwenden eines benutzerdefinierten SicherheitstokendienstUsing a custom STS

Möglicherweise möchte ein Kunde einen benutzerdefinierten Sicherheitstokendienst zum Bereitstellen von Token verwenden.A customer might choose to use a custom STS to provide tokens. Hierfür kann es folgende Gründe geben:Reasons include:

  • Der vom Kunden verwendete Identitätsanbieter (Identity Provider, IDP) unterstützt den Sicherheitstokendienst nicht.The identity provider (IDP) used by the customer doesn't support STS. In diesem Fall kann ein benutzerdefinierter Sicherheitstokendienst eine mögliche Option sein.In this case, a custom STS might be an option.

  • Der Kunde benötigt möglicherweise eine flexiblere oder strengere Kontrolle bei der Integration des Sicherheitstokendiensts in das Abrechnungssystem des Kunden für Abonnenten.The customer might need more flexible or tighter control to integrate STS with the customer's subscriber billing system.

    Beispielsweise kann ein OTT-Dienstanbieter mehrere Abonnentenpakete (z. B. „Premium“, „Standard“ und „Sport“) anbieten.For example, an OTT service operator might offer multiple subscriber packages, such as premium, basic, and sports. Der Programmanbieter möchte die Ansprüche in einem Token mit dem Paket eines Abonnenten abgleichen, sodass nur die Inhalte in einem bestimmten Paket zur Verfügung gestellt werden.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. In diesem Fall bietet ein benutzerdefinierter STS die erforderliche Flexibilität und Kontrolle.In this case, a custom STS provides the needed flexibility and control.

  • Einfügen benutzerdefinierter Ansprüche in das Token, um zwischen verschiedenen ContentKeyPolicyOptions mit unterschiedlichen DRM-Lizenzparametern (Abonnementlizenz oder Mietlizenz) auszuwählen.To include custom claims in the token to select between different ContentKeyPolicyOptions with different DRM license parameters (a subscription license versus a rental license).

  • Einfügen eines Anspruchs, der den Bezeichner des Inhaltsschlüssels darstellt, auf den das Token den Zugriff ermöglicht.To include a claim representing the content key identifier of the key that the token grants access to.

Wenn Sie einen benutzerdefinierten Sicherheitstokendienst verwenden, müssen Sie zwei Änderungen vornehmen:When you use a custom STS, two changes must be made:

  • Wenn Sie den Lizenzbereitstellungsdienst für ein Medienobjekt konfigurieren, müssen Sie anstelle des aktuellen Schlüssels aus Azure AD Sicherheitsschlüssel angeben, der vom benutzerdefinierten Sicherheitstokendienst zur Überprüfung verwendet wird.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.
  • Wenn ein JWT generiert wird, wird anstelle des privaten Schlüssels des aktuellen X.509-Zertifikats in Azure AD ein Sicherheitsschlüssel angegeben.When a JTW token is generated, a security key is specified instead of the private key of the current X509 certificate in Azure AD.

Es gibt zwei Arten von Sicherheitsschlüsseln:There are two types of security keys:

  • Symmetrischer Schlüssel: Um ein JWT zu generieren und zu überprüfen, wird ein und derselbe Schlüssel verwendet.Symmetric key: The same key is used to generate and to verify a JWT.
  • Asymmetrischer Schlüssel: Ein Paar aus öffentlichem und privatem Schlüssel in einem X.509-Zertifikat wird mit einem privaten Schlüssel verwendet, um ein JWT zu verschlüsseln und zu generieren. Das gleiche Paar wird mit dem öffentlichen Schlüssel verwendet, um das Token zu überprüfen.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.

Bei Verwendung von .NET Framework/C# als Entwicklungsplattform muss das X.509-Zertifikat für einen asymmetrischen Sicherheitsschlüssel eine Schlüssellänge von mindestens 2048 aufweisen.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. Diese Schlüssellänge ist eine Voraussetzung für die System.IdentityModel.Tokens.X509AsymmetricSecurityKey-Klasse in .NET Framework.This key length is a requirement of the class System.IdentityModel.Tokens.X509AsymmetricSecurityKey in .NET Framework. Andernfalls wird die folgende Ausnahme ausgelöst: IDX10630: „System.IdentityModel.Tokens.X509AsymmetricSecurityKey“ für die Signierung darf nicht kleiner als 2.048 Bits sein.Otherwise, the following exception is thrown: IDX10630: The 'System.IdentityModel.Tokens.X509AsymmetricSecurityKey' for signing can't be smaller than '2048' bits.

URL für benutzerdefinierte Schlüssel und den LizenzerwerbCustom key and license acquisition URL

Verwenden Sie folgende Vorlagen, wenn Sie einen anderen Lizenz-/Schlüsselbereitstellungsdienst (nicht Media Services) festlegen möchten.Use the following templates if you want to specify a different license/key delivery service (not Media Services). Die beiden ersetzbaren Felder in den Vorlagen sind vorhanden, damit Sie Ihre Streamingrichtlinie für mehrere Ressourcen freigeben können, anstatt für jede Ressource eine Streamingrichtlinie zu erstellen.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: Vorlage für die URL des benutzerdefinierten Diensts, der Schlüssel für die Player der Endbenutzer bereitstellt.EnvelopeEncryption.CustomKeyAcquisitionUrlTemplate: Template for the URL of the custom service that delivers keys to end-user players. Diese ist nicht erforderlich, wenn Sie Azure Media Services für das Ausstellen von Schlüsseln verwenden.It isn't required when you're using Azure Media Services for issuing keys.

    Die Vorlage unterstützt ersetzbare Token, die der Dienst zur Laufzeit mit dem Wert für die Anforderung aktualisiert.The template supports replaceable tokens that the service will update at runtime with the value specific to the request. Folgende Tokenwerte werden derzeit unterstützt:The currently supported token values are:

    • {AlternativeMediaId}, der durch den Wert von „StreamingLocatorId.AlternativeMediaId“ ersetzt wird.{AlternativeMediaId}, which is replaced with the value of StreamingLocatorId.AlternativeMediaId.
    • {ContentKeyId}, der durch den Wert des Bezeichners des angeforderten Schlüssels ersetzt wird.{ContentKeyId}, which is replaced with the value of the identifier of the requested key.
  • StreamingPolicyPlayReadyConfiguration.CustomLicenseAcquisitionUrlTemplate: Vorlage für die URL des benutzerdefinierten Diensts, der Lizenzen für die Player der Endbenutzer bereitstellt.StreamingPolicyPlayReadyConfiguration.CustomLicenseAcquisitionUrlTemplate: Template for the URL of the custom service that delivers licenses to end-user players. Diese ist nicht erforderlich, wenn Sie Azure Media Services für das Ausstellen von Lizenzen verwenden.It isn't required when you're using Azure Media Services for issuing licenses.

    Die Vorlage unterstützt ersetzbare Token, die der Dienst zur Laufzeit mit dem Wert für die Anforderung aktualisiert.The template supports replaceable tokens that the service will update at runtime with the value specific to the request. Folgende Tokenwerte werden derzeit unterstützt:The currently supported token values are:

    • {AlternativeMediaId}, der durch den Wert von „StreamingLocatorId.AlternativeMediaId“ ersetzt wird.{AlternativeMediaId}, which is replaced with the value of StreamingLocatorId.AlternativeMediaId.
    • {ContentKeyId}, der durch den Wert des Bezeichners des angeforderten Schlüssels ersetzt wird.{ContentKeyId}, which is replaced with the value of the identifier of the requested key.
  • StreamingPolicyWidevineConfiguration.CustomLicenseAcquisitionUrlTemplate: Entspricht der vorherigen Vorlage, nur für Widevine.StreamingPolicyWidevineConfiguration.CustomLicenseAcquisitionUrlTemplate: Same as the previous template, only for Widevine.

  • StreamingPolicyFairPlayConfiguration.CustomLicenseAcquisitionUrlTemplate: Entspricht der vorherigen Vorlage, nur für FairPlay.StreamingPolicyFairPlayConfiguration.CustomLicenseAcquisitionUrlTemplate: Same as the previous template, only for FairPlay.

Beispiel:For example:

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

ContentKeyId enthält den Wert des angeforderten Schlüssels.ContentKeyId has a value of the requested key. Sie können AlternativeMediaId verwenden, wenn Sie die Anforderung einer Ihrer Entitäten zuordnen möchten.You can use AlternativeMediaId if you want to map the request to an entity on your side. AlternativeMediaId kann beispielsweise verwendet werden, um nach Berechtigungen zu suchen.For example, AlternativeMediaId can be used to help you look up permissions.

Unter Streaming Policies – Create (Streamingrichtlinien: Erstellung) finden Sie REST-Beispiele, in denen URLs für den benutzerdefinierten Lizenz-/Schlüsselerwerb verwendet werden.For REST examples that use custom license/key acquisition URLs, see Streaming Policies - Create.

Hinweis

Widevine ist ein von Google Inc. bereitgestellter Dienst, der den Vertragsbedingungen und der Datenschutzrichtlinie von Google, Inc. unterliegt.Widevine is a service provided by Google Inc. and subject to the terms of service and Privacy Policy of Google, Inc.

ProblembehandlungTroubleshoot

Wenn der Fehler MPE_ENC_ENCRYPTION_NOT_SET_IN_DELIVERY_POLICY angezeigt wird, überprüfen Sie, ob Sie die richtige Streamingrichtlinie angegeben haben.If you get the MPE_ENC_ENCRYPTION_NOT_SET_IN_DELIVERY_POLICY error, make sure that you specify the appropriate streaming policy.

Bei Fehlern, die auf _NOT_SPECIFIED_IN_URL enden, sollten Sie sicherstellen, dass Sie das Verschlüsselungsformat in der URL angeben.If you get errors that end with _NOT_SPECIFIED_IN_URL, make sure that you specify the encryption format in the URL. z. B. …/manifest(format=m3u8-cmaf,encryption=cbcs-aapl).An example is …/manifest(format=m3u8-cmaf,encryption=cbcs-aapl). Weitere Informationen finden Sie unter Streamingprotokolle und Verschlüsselungstypen.See Streaming protocols and encryption types.

Fragen stellen, Feedback geben, Updates abrufenAsk questions, give feedback, get updates

Im Artikel Azure Media Services-Community finden Sie verschiedene Möglichkeiten, Fragen zu stellen, Feedback zu geben und Updates zu Media Services zu bekommen.Check out the Azure Media Services community article to see different ways you can ask questions, give feedback, and get updates about Media Services.

Nächste SchritteNext steps