Delen via


Azure Content Delivery Network-assets beveiligen met tokenverificatie

Belangrijk

Dit is alleen een functie van Azure CDN Premium van Edgio om regels op Azure CDN van Microsoft te configureren. Gebruik de standard-regelengine. Geavanceerde regels zijn niet beschikbaar voor Azure CDN van Akamai. Zie Azure CDN-productfuncties voor een volledige vergelijking van CDN-functies.

Overzicht

Tokenverificatie is een mechanisme waarmee u kunt voorkomen dat het Azure-netwerk voor contentlevering assets levert aan niet-geautoriseerde clients. Tokenverificatie wordt meestal uitgevoerd om hotlinking van inhoud te voorkomen, waarbij een andere website, zoals een berichtenbord, uw assets zonder toestemming gebruikt. Hotlinking kan invloed hebben op de leveringskosten van uw inhoud. Wanneer u tokenverificatie inschakelt op het netwerk voor contentlevering, worden aanvragen geverifieerd door de edge-server van het contentleveringsnetwerk voordat het netwerk voor contentlevering de inhoud levert.

Uitleg

Met tokenverificatie wordt gecontroleerd of aanvragen worden gegenereerd door een vertrouwde site door te vereisen dat aanvragen een tokenwaarde bevatten die gecodeerde informatie over de aanvrager bevat. Inhoud wordt alleen aan een aanvrager aangeboden als de gecodeerde informatie voldoet aan de vereisten; anders worden aanvragen geweigerd. U kunt de vereisten instellen met behulp van een of meer van de volgende parameters:

  • Land/regio: aanvragen toestaan of weigeren die afkomstig zijn van de landen/regio's die zijn opgegeven door hun land-/regiocode.
  • URL: Alleen aanvragen toestaan die overeenkomen met de opgegeven asset of het opgegeven pad.
  • Host: Aanvragen toestaan of weigeren die gebruikmaken van de opgegeven hosts in de aanvraagheader.
  • Referrer: Aanvraag van de opgegeven verwijzer toestaan of weigeren.
  • IP-adres: alleen aanvragen toestaan die afkomstig zijn van een specifiek IP-adres of IP-subnet.
  • Protocol: Aanvragen toestaan of weigeren op basis van het protocol dat wordt gebruikt om de inhoud aan te vragen.
  • Verlooptijd: wijs een datum en tijdsperiode toe om ervoor te zorgen dat een koppeling alleen geldig blijft voor een beperkte periode.

Zie de gedetailleerde configuratievoorbeelden voor elke parameter in Tokenverificatie instellen voor meer informatie.

Belangrijk

Als tokenautorisatie is ingeschakeld voor een pad in dit account, is de standaardcachemodus de enige modus die kan worden gebruikt voor het opslaan van queryreeksen. Zie Het cachegedrag van Azure Content Delivery Network beheren met queryreeksen voor meer informatie.

Referentiearchitectuur

In het volgende werkstroomdiagram wordt beschreven hoe het netwerk voor contentlevering tokenverificatie gebruikt om met uw web-app te werken.

Schermopname van de werkstroom voor netwerktokenverificatie voor contentlevering.

Tokenvalidatielogica op netwerkeindpunt voor contentlevering

In het volgende stroomdiagram wordt beschreven hoe Azure Content Delivery Network een clientaanvraag valideert wanneer tokenverificatie is geconfigureerd op het netwerkeindpunt voor contentlevering.

Schermopname van de validatielogica van het netwerktoken voor contentlevering.

Tokenverificatie instellen

  1. Blader in Azure Portal naar uw netwerkprofiel voor contentlevering en selecteer vervolgens Beheren om de aanvullende portal te starten.

    Schermopname van de knop Voor het beheren van het netwerkprofiel voor contentlevering.

  2. Beweeg de muisaanwijzer over HTTP Large en selecteer vervolgens Token-verificatie in de flyout. U kunt vervolgens de versleutelingssleutel en versleutelingsparameters als volgt instellen:

    1. Maak een of meer versleutelingssleutels. Een versleutelingssleutel is hoofdlettergevoelig en kan elke combinatie van alfanumerieke tekens bevatten. Andere typen tekens, inclusief spaties, zijn niet toegestaan. Maximale lengte is 250 tekens. Om ervoor te zorgen dat uw versleutelingssleutels willekeurig zijn, is het raadzaam deze te maken met behulp van het OpenSSL-hulpprogramma.

      Het hulpprogramma OpenSSL heeft de volgende syntaxis:

      rand -hex <key length>

      Voorbeeld:

      OpenSSL> rand -hex 32

      Als u downtime wilt voorkomen, maakt u zowel een primaire als een back-upsleutel. Een back-upsleutel biedt ononderbroken toegang tot uw inhoud wanneer uw primaire sleutel wordt bijgewerkt.

    2. Voer een unieke versleutelingssleutel in het vak Primaire sleutel in en voer eventueel een back-upsleutel in het vak Back-upsleutel in.

    3. Selecteer de minimale versleutelingsversie voor elke sleutel in de lijst met minimale versleutelingsversies en selecteer vervolgens Bijwerken:

      • V2: Geeft aan dat de sleutel kan worden gebruikt voor het genereren van versie 2.0- en 3.0-tokens. Gebruik deze optie alleen als u overstapt van een verouderde versie 2.0-versleutelingssleutel naar een versie 3.0-sleutel.
      • V3: (Aanbevolen) Geeft aan dat de sleutel alleen kan worden gebruikt voor het genereren van versie 3.0-tokens.

      Schermopname van de installatiesleutel voor het netwerktoken voor contentlevering.

    4. Gebruik het versleutelingsprogramma om versleutelingsparameters in te stellen en een token te genereren. Met het versleutelingsprogramma kunt u aanvragen toestaan of weigeren op basis van verlooptijd, land/regio, referrer, protocol en client-IP (in elke combinatie). Hoewel er geen limiet is voor het aantal en de combinatie van parameters die kunnen worden gecombineerd om een token te vormen, is de totale lengte van een token beperkt tot 512 tekens.

      Schermopname van het hulpprogramma voor het versleutelen van het netwerk voor contentlevering.

      Voer waarden in voor een of meer van de volgende versleutelingsparameters in de sectie Encrypt Tool :

      Parameternaam Beschrijving
      ec_expire Hiermee wordt een verlooptijd toegewezen aan een token, waarna het token verloopt. Aanvragen die na de verlooptijd zijn ingediend, worden geweigerd. Deze parameter maakt gebruik van een Unix-tijdstempel, die is gebaseerd op het aantal seconden sinds de standaard Unix-epoch van '1-1-1-1970 00:00:00 GMT'. (U kunt onlinehulpprogramma's gebruiken om te converteren tussen standaardtijd en Unix-tijd.)

      Als u bijvoorbeeld wilt dat het token verloopt op12/31/2016 12:00:00 GMT, voert u de Unix-tijdstempelwaarde in. 1483185600

      ec_url_allow Hiermee kunt u tokens aanpassen aan een bepaalde asset of een bepaald pad. Hiermee wordt de toegang beperkt tot aanvragen waarvan de URL begint met een specifiek relatief pad. URL's zijn hoofdlettergevoelig. Voer meerdere paden in door elk pad te scheiden met een komma; voeg geen spaties toe. Afhankelijk van uw vereisten kunt u verschillende waarden instellen om verschillende toegangsniveaus te bieden.

      Voor de URL http://www.mydomain.com/pictures/city/strasbourg.pngzijn deze aanvragen bijvoorbeeld toegestaan voor de volgende invoerwaarden:

      • Invoerwaarde '/': alle aanvragen zijn toegestaan.
      • Invoerwaarde /afbeeldingen: de volgende aanvragen zijn toegestaan:
        • 'http://www.mydomain.com/pictures.png'
        • 'http://www.mydomain.com/pictures/city/strasbourg.png'
        • 'http://www.mydomain.com/picturesnew/city/strasbourgh.png'
      • Invoerwaarde '/pictures/': alleen aanvragen met het pad '/pictures/' zijn toegestaan. Bijvoorbeeld 'http://www.mydomain.com/pictures/city/strasbourg.png'.
      • Invoerwaarde '/pictures/city/strasbourg.png': alleen aanvragen voor dit specifieke pad en deze asset zijn toegestaan.
      ec_country_allow Alleen aanvragen toestaan die afkomstig zijn van een of meer opgegeven landen/regio's. Aanvragen die afkomstig zijn van alle andere landen/regio's worden geweigerd. Gebruik een tweeletterige [ISO 3166-land-/regiocode](/vorige versies/azure/mt761717(v=azure.100)) voor elk land/elke regio en scheid elke code met een komma; voeg geen spatie toe. Als u bijvoorbeeld alleen toegang wilt toestaan vanuit de Verenigde Staten en Frankrijk, voert u 'VS, FR' in.
      ec_country_deny Hiermee worden aanvragen geweigerd die afkomstig zijn van een of meer opgegeven landen/regio's. Aanvragen die afkomstig zijn van alle andere landen/regio's zijn toegestaan. De implementatie is hetzelfde als de parameter ec_country_allow . Als er een land-/regiocode aanwezig is in zowel de parameters ec_country_allowals ec_country_deny , heeft de parameter ec_country_allow voorrang.
      ec_ref_allow Hiermee kunnen alleen aanvragen van de opgegeven verwijzende functie worden toegestaan. Een verwijzer identificeert de URL van de webpagina die is gekoppeld aan de resource die wordt aangevraagd. Neem het protocol niet op in de parameterwaarde.

      De volgende typen invoer zijn toegestaan:

      • Een hostnaam of een hostnaam en een pad.
      • Meerdere verwijzingen. Als u meerdere verwijzingen wilt toevoegen, scheidt u elke verwijzer met een komma; voeg geen spatie toe. Als u een verwijzingswaarde opgeeft, maar de informatie over de verwijzing niet in de aanvraag wordt verzonden vanwege de browserconfiguratie, wordt de aanvraag standaard geweigerd.
      • Aanvragen met ontbrekende of lege informatie over verwijzingen. Standaard blokkeert de parameter ec_ref_allow dit soort aanvragen. Als u deze aanvragen wilt toestaan, voert u de tekst 'ontbreekt' in of voert u een lege waarde in (met behulp van een volgkomma).
      • Subdomeinen. Als u subdomeinen wilt toestaan, voert u een sterretje (\*) in. Als u bijvoorbeeld alle subdomeinen van 'contoso.com' wilt toestaan, voert u *.contoso.com in.

      Als u bijvoorbeeld toegang wilt toestaan voor aanvragen van www.contoso.com, alle subdomeinen onder contoso2.comen aanvragen met lege of ontbrekende referrers, voert u dit in www.contoso.com,*.contoso.com,missing.

      ec_ref_deny Weigert aanvragen van de opgegeven referrer. De implementatie is hetzelfde als de parameter ec_ref_allow . Als een verwijzing aanwezig is in zowel de parameters ec_ref_allow als ec_ref_deny, heeft de parameter ec_ref_allow prioriteit.
      ec_proto_allow Alleen aanvragen van het opgegeven protocol zijn toegestaan. Geldige waarden zijn 'http', 'https' of 'http,https'.
      ec_proto_deny Hiermee worden aanvragen van het opgegeven protocol geweigerd. De implementatie is hetzelfde als de parameter ec_proto_allow . Als een protocol aanwezig is in zowel de parameters ec_proto_allow als ec_proto_deny , heeft de parameter ec_proto_allow prioriteit.
      ec_clientip Hiermee beperkt u de toegang tot het IP-adres van de opgegeven aanvrager. Zowel Internet Protocol versie 4 (IPv4) als Internet Protocol versie 6 (IPv6) worden ondersteund. U kunt één AANVRAAG-IP-adres of IP-adressen opgeven die zijn gekoppeld aan een specifiek subnet. Met '11.22.33.0/22' kunnen aanvragen van IP-adressen 11.22.32.1 tot 11.22.35.254 worden toegestaan.
    5. Nadat u de waarden voor versleutelingsparameters hebt ingevoerd, selecteert u een sleutel die u wilt versleutelen (als u zowel een primaire als een back-upsleutel hebt gemaakt) in de lijst Sleutel voor versleuteling .

    6. Selecteer een versleutelingsversie in de lijst met versleutelingsversies : V2 voor versie 2 of V3 voor versie 3 (aanbevolen).

    7. Selecteer Versleutelen om het token te genereren.

      Nadat het token is gegenereerd, wordt het weergegeven in het vak Gegenereerd token . Als u het token wilt gebruiken, voegt u het toe als een querytekenreeks aan het einde van het bestand in het URL-pad. Bijvoorbeeld: http://www.domain.com/content.mov?a4fbc3710fd3449a7c99986b.

    8. Test eventueel uw token met het ontsleutelingsprogramma, zodat u de parameters van uw token kunt bekijken. Plak de tokenwaarde in het vak Token om te ontsleutelen . Selecteer de versleutelingssleutel die u wilt gebruiken in de lijst Sleutel om te ontsleutelen en selecteer Vervolgens Ontsleutelen.

      Nadat het token is ontsleuteld, worden de parameters weergegeven in het vak Oorspronkelijke parameters .

    9. U kunt desgewenst het type antwoordcode aanpassen dat wordt geretourneerd wanneer een aanvraag wordt geweigerd. Selecteer Ingeschakeld en selecteer vervolgens de antwoordcode in de lijst Antwoordcode . De naam van de koptekst wordt automatisch ingesteld op Locatie. Selecteer Opslaan om de nieuwe antwoordcode te implementeren. Voor bepaalde antwoordcodes moet u ook de URL van uw foutpagina invoeren in het vak Header Value . De 403-antwoordcode (Verboden) is standaard geselecteerd.

  3. Selecteer onder HTTP Large de optie Regelengine. U gebruikt de regelengine om paden te definiëren om de functie toe te passen, de functie voor tokenverificatie in te schakelen en extra mogelijkheden voor tokenverificatie in te schakelen. Zie de naslaginformatie voor de regelengine voor meer informatie.

    1. Selecteer een bestaande regel of maak een nieuwe regel om de asset of het pad te definiëren waarvoor u tokenverificatie wilt toepassen.

    2. Als u tokenverificatie voor een regel wilt inschakelen, selecteert u Tokenverificatie in de lijst Functies en selecteert u Vervolgens Ingeschakeld. Selecteer Bijwerken als u een regel bijwerkt of Toevoegen als u een regel maakt.

      Schermopname van het tokenverificatie van de netwerkregelsgine voor contentlevering inschakelen.

  4. In de regelengine kunt u ook meer functies voor tokenverificatie inschakelen. Als u een van de volgende functies wilt inschakelen, selecteert u deze in de lijst Functies en selecteert u Vervolgens Ingeschakeld.

    • Token Auth Denial Code: bepaalt het type antwoord dat wordt geretourneerd aan een gebruiker wanneer een aanvraag wordt geweigerd. Regels die hier worden ingesteld, overschrijven de antwoordcode die is ingesteld in de sectie Custom Denial Handling op de verificatiepagina op basis van tokens.

    • Tokenverificatie URL negeren hoofdlettergebruik: bepaalt of de URL die wordt gebruikt om het token te valideren hoofdlettergevoelig is.

    • Parameter voor tokenverificatie: wijzigt de naam van de queryreeksparameter voor tokenverificatie die wordt weergegeven in de aangevraagde URL.

      Schermopname van het voorbeeld van de instellingen voor tokenverificatie van de netwerkregelsgine voor contentlevering.

  5. U kunt uw token aanpassen door toegang te krijgen tot broncode in GitHub. Beschikbare talen zijn onder andere:

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

Functies en providerprijzen voor Azure Content Delivery Network

Zie De productfuncties van Azure Content Delivery Network voor informatie over functies. Zie Prijzen voor Content Delivery Network voor meer informatie over prijzen.