Freigeben über


Schützen von Azure Content Delivery Network-Assets mit Tokenauthentifizierung

Von Bedeutung

Dies ist ein Feature von Azure CDN Premium nur von Edgio , um Regeln für Azure CDN von Microsoft zu konfigurieren, verwenden Sie bitte das Standardregelnmodul. Erweiterte Regeln sind für Azure CDN von Akamai nicht verfügbar. Einen vollständigen Vergleich der CDN-Features finden Sie unter Azure CDN-Produktfeatures.

Überblick

Die Token-Authentifizierung ist ein Mechanismus, mit dem Sie verhindern können, dass das Azure Content Delivery Network Assets an nicht autorisierte Clients ausliefert. Die Tokenauthentifizierung erfolgt in der Regel, um hotlinking von Inhalten zu verhindern, in denen eine andere Website, z. B. ein Message Board, Ihre Objekte ohne Erlaubnis verwendet. Hotlinking kann Ihre Kosten für die Inhaltsbereitstellung beeinflussen. Wenn Sie die Tokenauthentifizierung im Netzwerk für die Inhaltsübermittlung aktivieren, werden Anforderungen vom Netzwerk-Edgeserver für die Inhaltsübermittlung authentifiziert, bevor das Inhaltsübermittlungs-Netzwerk den Inhalt bereitstellt.

Funktionsweise

Bei der Tokenauthentifizierung wird überprüft, ob Anforderungen von einer vertrauenswürdigen Website generiert wurden. Dazu müssen die Anforderungen einen Tokenwert mit codierten Informationen zur anfordernden Person enthalten. Inhalte werden der anfordernden Person nur bereitgestellt, wenn die codierten Informationen die erforderlichen Voraussetzungen erfüllen. Andernfalls werden die Anforderungen abgelehnt. Sie können die Anforderungen einrichten, indem Sie einen oder mehrere der folgenden Parameter verwenden:

  • Land/Region: Zulassen oder Verweigern von Anforderungen, die aus den Ländern/Regionen stammen, die durch ihren Länder-/Regionscode angegeben sind.
  • URL: Lassen Sie nur Anforderungen zu, die der angegebenen Ressource oder dem Pfad entsprechen.
  • Host: Lassen Sie Anforderungen zu, die die im Anforderungsheader angegebenen Hosts verwenden, oder verweigern Sie solche Anforderungen.
  • Verweiser: Lassen Sie Anforderungen vom angegebenen Verweiser zu, oder verweigern Sie solche Anforderungen.
  • IP-Adresse: Lassen Sie nur Anforderungen zu, die von einer bestimmten IP-Adresse oder aus einem bestimmten IP-Subnetz stammen.
  • Protokoll: Lassen Sie Anforderungen basierend auf dem Protokoll zu, das zum Anfordern des Inhalts verwendet wird, oder verweigern Sie solche Anforderungen.
  • Ablaufzeit: Weisen Sie einen Datums- und Zeitbereich zu, um sicherzustellen, dass ein Link nur für eine begrenzte Zeit gültig bleibt.

Weitere Informationen finden Sie in den detaillierten Konfigurationsbeispielen für jeden Parameter beim Einrichten der Tokenauthentifizierung.

Von Bedeutung

Wenn die Tokenberechtigung für einen beliebigen Pfad für dieses Konto aktiviert ist, ist der Standardcachemodus der einzige Modus, der für die Zwischenspeicherung von Abfragezeichenfolgen verwendet werden kann. Weitere Informationen finden Sie unter Steuern des Zwischenspeicherungsverhaltens des Azure Content Delivery Network mit Abfragezeichenfolgen.

Referenzarchitektur

Das folgende Workflow-Diagramm beschreibt, wie das Content Delivery Network die Token-Authentifizierung verwendet, um mit Ihrer Web-App zu arbeiten.

Screenshot des Token-Authentifizierungsworkflows im Content Delivery Network (CDN).

Tokenüberprüfungslogik für den Netzwerkendpunkt für die Inhaltsübermittlung

Das folgende Flussdiagramm beschreibt, wie das Azure Content Delivery Network eine Clientanforderung überprüft, wenn die Tokenauthentifizierung auf dem Endpunkt für die Inhaltsübermittlung konfiguriert ist.

Screenshot der Überprüfungslogik für das Netzwerktoken für die Inhaltsübermittlung.

Einrichten der Tokenauthentifizierung

  1. Navigieren Sie im Azure-Portal zu Ihrem Netzwerkprofil für die Inhaltsübermittlung, und wählen Sie dann "Verwalten" aus, um das ergänzende Portal zu starten.

    Screenshot der Schaltfläche zur Verwaltung des Content Delivery Networks (CDN).

  2. Zeigen Sie auf HTTP Large, und wählen Sie dann im Flyout "Token-Authentifizierung " aus. Sie können dann den Verschlüsselungsschlüssel und Verschlüsselungsparameter wie folgt einrichten:

    1. Erstellen Sie einen oder mehrere Verschlüsselungsschlüssel. Bei einem Verschlüsselungsschlüssel muss die Groß-/Kleinschreibung beachtet werden, und er kann eine beliebige Kombination aus alphanumerischen Zeichen enthalten. Alle anderen Arten von Zeichen, einschließlich Leerzeichen, sind unzulässig. Die maximale Länge beträgt 250 Zeichen. Um sicherzustellen, dass Ihre Verschlüsselungsschlüssel zufällig sind, empfiehlt es sich, diese mithilfe des OpenSSL-Tools zu erstellen.

      Das OpenSSL-Tool hat die folgende Syntax:

      rand -hex <key length>

      Beispiel:

      OpenSSL> rand -hex 32

      Erstellen Sie sowohl einen Primär- als auch einen Sicherungsschlüssel, um Downtime zu vermeiden. Ein Sicherungsschlüssel ermöglicht während der Aktualisierung des Primärschlüssels unterbrechungsfreien Zugriff auf Ihre Inhalte.

    2. Geben Sie einen eindeutigen Verschlüsselungsschlüssel in das Primärschlüsselfeld ein, und geben Sie optional einen Sicherungsschlüssel in das Feld " Sicherungsschlüssel " ein.

    3. Wählen Sie die Mindestverschlüsselungsversion für jeden Schlüssel aus der Liste der Mindestverschlüsselungsversion aus, und wählen Sie dann "Aktualisieren" aus:

      • V2: Gibt an, dass der Schlüssel verwendet werden kann, um Token der Version 2.0 und 3.0 zu generieren. Verwenden Sie diese Option nur, wenn Sie von einem älteren Verschlüsselungsschlüssel der Version 2.0 auf einen Schlüssel der Version 3.0 umstellen.
      • V3: (Empfohlen) Gibt an, dass der Schlüssel nur zum Generieren von Version 3.0-Token verwendet werden kann.
    4. Verwenden Sie das Verschlüsselungstool, um Verschlüsselungsparameter einzurichten und ein Token zu generieren. Mit dem Verschlüsselungstool können Sie Anforderungen basierend auf Ablaufzeit, Land/Region, Verweiser, Protokoll und Client-IP (in beliebigen Kombinationen) zulassen oder ablehnen. Die Anzahl und Art der Parameter, die zur Bildung eines Tokens kombiniert werden können, sind zwar nicht begrenzt, die Gesamtlänge eines Tokens darf jedoch maximal 512 Zeichen betragen.

      Screenshot des Tools zum Verschlüsseln des Inhaltsübermittlungsnetzwerks.

      Geben Sie Werte für einen oder mehrere der folgenden Verschlüsselungsparameter im Abschnitt "Verschlüsselungstool " ein:

      Parametername BESCHREIBUNG
      ec_expire Dient dem Zuweisen einer Ablaufzeit zu einem Token. Nach Verstreichen dieser Zeit wird das Token ungültig. Anforderungen, die nach der Ablaufzeit übermittelt werden, werden abgelehnt. Dieser Parameter verwendet einen UNIX-Zeitstempel, der auf der Anzahl der Sekunden seit Beginn der UNIX-Standardepoche „1/1/1970 00:00:00 GMT“ basiert. (Sie können Onlinetools für die Konvertierung zwischen der Standardzeit und der UNIX-Zeit verwenden.)

      Wenn das Token beispielsweise am 12/31/2016 12:00:00 GMT ablaufen soll, geben Sie den UNIX-Zeitstempelwert 1483185600 ein.

      ec_url_allow Dient zum Anpassen von Token an ein bestimmtes Asset oder einen Pfad. Der Zugriff wird auf Anforderungen beschränkt, deren URL mit einem bestimmten relativen Pfad beginnt. Bei URLs wird die Groß-/Kleinschreibung berücksichtigt. Geben Sie mehrere Pfade ein, indem Sie als Trennzeichen jeweils ein Komma verwenden. Fügen Sie außerdem keine Leerzeichen hinzu. Je nach Ihren Anforderungen können Sie andere Werte angeben, um unterschiedliche Zugriffsebenen bereitzustellen.

      Für die URL http://www.mydomain.com/pictures/city/strasbourg.png sind diese Anforderungen z.B. für die folgenden Eingabewerte zulässig:

      • Eingabewert „/“: Alle Anforderungen sind zulässig.
      • Eingabewert „/pictures“: Die folgenden Anforderungen sind zulässig:
        • `http://www.mydomain.com/pictures.png`
        • 'http://www.mydomain.com/pictures/city/strasbourg.png'
        • 'http://www.mydomain.com/picturesnew/city/strasbourgh.png'
      • Eingabewert „/pictures“: Nur Anforderungen, die den Pfad „/pictures“ enthalten, sind zulässig. Beispiel: „http://www.mydomain.com/pictures/city/strasbourg.png“.
      • Eingabewert „/pictures/city/strasbourg.png“: Nur Anforderungen für diesen bestimmten Pfad und dieses Objekt sind zulässig.
      ec_country_erlauben Es sind nur Anforderungen zulässig, die aus einem oder mehreren der angegebenen Länder/Regionen stammen. Anforderungen aus allen anderen Ländern/Regionen werden abgelehnt. Verwenden Sie für jedes Land/jede Region einen aus zwei Buchstaben bestehenden [Ländercode nach ISO 3166] (/previous-versions/azure/mt761717(v=azure.100)). Trennen Sie alle Länder/Regionen jeweils mit einem Komma voneinander, und fügen Sie keine Leerzeichen ein. Beispiel: Wenn Sie den Zugriff nur aus den USA und aus Frankreich zulassen möchten, geben Sie „US,FR“ ein.
      ec_country_deny Dient zum Ablehnen von Anforderungen, die aus einem oder mehreren angegebenen Ländern/Regionen stammen. Anforderungen aus allen anderen Ländern/Regionen werden zugelassen. Die Implementierung ist mit dem ec_country_allow-Parameter identisch. Wenn ein Code für Land/Region sowohl in den parametern ec_country_allow als auch in ec_country_deny vorhanden ist, hat der parameter ec_country_allow Vorrang.
      ec_ref_allow Es werden nur Anforderungen vom angegebenen Verweiser zugelassen. Mit einem Verweiser wird die URL der Webseite identifiziert, die als Link zur angeforderten Ressource dient. Nehmen Sie das Protokoll nicht in den Parameterwert auf.

      Die folgenden Eingabetypen sind zulässig:

      • Ein Hostname oder ein Hostname und ein Pfad.
      • Mehrere Verweiser. Um mehrere Verweiser hinzuzufügen, trennen Sie sie durch Kommas und fügen Sie kein Leerzeichen hinzu. Wenn Sie einen Verweiserwert angeben, die entsprechenden Informationen aufgrund der Browserkonfiguration aber nicht mit der Anforderung gesendet werden, wird die Anforderung standardmäßig abgelehnt.
      • Anforderungen mit fehlenden oder leeren Verweiserinformationen. Standardmäßig blockiert der ec_ref_allow Parameter diese Arten von Anforderungen. Um solche Anforderungen zuzulassen, geben Sie entweder den Text „missing“ oder einen leeren Wert (unter Verwendung eines nachgestellten Kommas) ein.
      • Unterdomänen. Um Unterdomänen zuzulassen, geben Sie ein Sternchen (\*) ein. Wenn Sie beispielsweise alle Unterdomänen von „contoso.com“ zulassen, geben Sie „*.contoso.com“ ein.

      Beispielsweise geben Sie www.contoso.com ein, um Zugriff für Anforderungen von contoso2.com, allen Unterdomänen unter www.contoso.com,*.contoso.com,missing und Anforderungen mit leeren oder fehlenden Verweisern zuzulassen.

      ec_ref_deny Dient zum Ablehnen von Anforderungen über den angegebenen Verweiser. Die Implementierung ist identisch mit dem parameter ec_ref_allow . Wenn ein Referrer sowohl in den parametern ec_ref_allow als auch in ec_ref_deny vorhanden ist, hat der parameter ec_ref_allow Vorrang.
      ec_proto_allow Es werden nur Anforderungen vom angegebenen Protokoll zugelassen. Gültige Werte sind „http“, „https“ oder „http,https“.
      ec_proto_deny Dient zum Ablehnen von Anforderungen vom angegebenen Protokoll. Die Implementierung ist mit dem ec_proto_allow-Parameter identisch. Wenn ein Protokoll sowohl in den parametern ec_proto_allow als auch in ec_proto_deny vorhanden ist, hat der parameter ec_proto_allow Vorrang.
      ec_clientip Beschränkt den Zugriff auf die IP-Adresse der angegebenen anfordernden Person. Es werden sowohl Internet Protocol Version 4 (IPv4) als auch Internet Protocol Version 6 (IPv6) unterstützt. Sie können entweder eine einzelne Anforderungs-IP-Adresse oder einem bestimmten Subnetz zugeordnete IP-Adressen angeben. Beispielsweise gestattet „11.22.33.0/22“ Anforderungen der IP-Adressen 11.22.32.1 bis 11.22.35.254.
    5. Nachdem Sie die Eingabe von Verschlüsselungsparameterwerten abgeschlossen haben, wählen Sie einen Schlüssel aus, der verschlüsselt werden soll (wenn Sie sowohl einen primären als auch einen Sicherungsschlüssel erstellt haben) aus der Liste " Schlüssel zum Verschlüsseln" .

    6. Wählen Sie in der Liste " Verschlüsselungsversion " eine Verschlüsselungsversion aus: V2 für Version 2 oder V3 für Version 3 (empfohlen).

    7. Wählen Sie "Verschlüsseln " aus, um das Token zu generieren.

      Nachdem das Token generiert wurde, wird es im Feld "Generiertes Token " angezeigt. Zur Verwendung des Tokens fügen Sie es als Abfragezeichenfolge am Ende der Datei im URL-Pfad ein. Beispiel: http://www.domain.com/content.mov?a4fbc3710fd3449a7c99986b.

    8. Testen Sie Ihr Token optional mit dem Entschlüsselungstool, um die Parameter Ihres Tokens anzuzeigen. Fügen Sie den Tokenwert in das Feld "Token zum Entschlüsseln " ein. Wählen Sie den Verschlüsselungsschlüssel aus der Liste "Schlüssel zum Entschlüsseln " aus, und wählen Sie dann "Entschlüsseln" aus.

      Nachdem das Token entschlüsselt wurde, werden seine Parameter im Feld " Originalparameter " angezeigt.

    9. Passen Sie optional den Typ des Antwortcodes an, der zurückgegeben wird, wenn eine Anforderung abgelehnt wird. Wählen Sie "Aktiviert" und dann den Antwortcode aus der Antwortcodeliste aus. Der Kopfzeilenname wird automatisch auf "Speicherort" festgelegt. Wählen Sie "Speichern" aus, um den neuen Antwortcode zu implementieren. Für bestimmte Antwortcodes müssen Sie auch die URL Der Fehlerseite in das Feld "Kopfzeilenwert " eingeben. Der Antwortcode 403 (Verboten) ist standardmäßig aktiviert.

  3. Wählen Sie unter HTTP Large die Option "Rules Engine" aus. Mithilfe der Regel-Engine können Sie Pfade zum Anwenden der Funktion definieren sowie das Feature „Tokenauthentifizierung“ und weitere Funktionen zur Tokenauthentifizierung aktivieren. Weitere Informationen finden Sie unter Regelmodulreferenz.

    1. Wählen Sie eine vorhandene Regel aus, oder erstellen Sie eine neue Regel, um das Asset oder den Pfad zu definieren, auf das bzw. den Sie die Tokenauthentifizierung anwenden möchten.
    2. Um die Tokenauthentifizierung für eine Regel zu aktivieren, wählen Sie "Tokenauthentifizierung" aus der Liste "Features " und dann "Aktiviert" aus. Wählen Sie "Aktualisieren" aus, wenn Sie eine Regel aktualisieren oder hinzufügen , wenn Sie eine Regel erstellen.
  4. In der Regel-Engine können Sie auch weitere Features zur Tokenauthentifizierung aktivieren. Um eines der folgenden Features zu aktivieren, wählen Sie sie in der Liste "Features " aus, und wählen Sie dann "Aktiviert" aus.

  5. Sie können Ihr Token anpassen, indem Sie auf Den Quellcode in GitHub zugreifen. Verfügbare Sprachen:

    • C
    • C#
    • PHP
    • Perl
    • Java
    • Python

Azure Content Delivery Network-Funktionen und Anbieterpreise

Informationen zu Features finden Sie unter Azure Content Delivery Network-Produktfeatures. Informationen zum Preis finden Sie unter Content Delivery Network-Preise.