Skydda Azure Content Delivery Network-tillgångar med tokenautentisering
Viktigt!
Det här är en funktion i Endast Azure CDN Premium från Edgio för att konfigurera regler på Azure CDN från Microsoft med hjälp av standardregelmotorn. Avancerade regler är inte tillgängliga för Azure CDN från Akamai. En fullständig jämförelse av CDN-funktioner finns i Azure CDN-produktfunktioner.
Översikt
Tokenautentisering är en mekanism som gör att du kan förhindra att Azures nätverk för innehållsleverans betjänar tillgångar till obehöriga klienter. Tokenautentisering görs vanligtvis för att förhindra hotlinking av innehåll, där en annan webbplats, till exempel en anslagstavla, använder dina tillgångar utan behörighet. Snabblänkning kan påverka dina kostnader för innehållsleverans. När du aktiverar tokenautentisering i nätverket för innehållsleverans autentiseras begäranden av nätverksgränsservern för innehållsleverans innan innehållsleveransnätverket levererar innehållet.
Så här fungerar det
Tokenautentisering verifierar att begäranden genereras av en betrodd plats genom att kräva att begäranden innehåller ett tokenvärde som innehåller kodad information om beställaren. Innehållet skickas endast till en begärande om den kodade informationen uppfyller kraven. annars nekas begäranden. Du kan konfigurera kraven med hjälp av en eller flera av följande parametrar:
- Land/region: Tillåt eller neka begäranden som kommer från de länder/regioner som anges i deras lands-/regionkod.
- URL: Tillåt endast begäranden som matchar den angivna tillgången eller sökvägen.
- Värd: Tillåt eller neka begäranden som använder de angivna värdarna i begärandehuvudet.
- Referens: Tillåt eller neka begäran från den angivna referensen.
- IP-adress: Tillåt endast begäranden som kommer från en specifik IP-adress eller ETT IP-undernät.
- Protokoll: Tillåt eller neka begäranden baserat på det protokoll som används för att begära innehållet.
- Förfallotid: Tilldela ett datum och en tidsperiod för att säkerställa att en länk endast är giltig under en begränsad tidsperiod.
Mer information finns i detaljerade konfigurationsexempel för varje parameter i Konfigurera tokenautentisering.
Viktigt!
Om tokenauktorisering är aktiverat för en sökväg för det här kontot är standardcacheläget det enda läge som kan användas för cachelagring av frågesträngar. Mer information finns i Kontrollera cachelagringsbeteendet för Azure Content Delivery Network med frågesträngar.
Referensarkitektur
Följande arbetsflödesdiagram beskriver hur nätverket för innehållsleverans använder tokenautentisering för att fungera med din webbapp.
Tokenverifieringslogik på nätverksslutpunkten för innehållsleverans
Följande flödesschema beskriver hur Azure Content Delivery Network validerar en klientbegäran när tokenautentisering konfigureras på nätverksslutpunkten för innehållsleverans.
Konfigurera tokenautentisering
Från Azure-portalen bläddrar du till nätverksprofilen för innehållsleverans och väljer sedan Hantera för att starta tilläggsportalen.
Hovra över HTTP Large och välj sedan TokenAutentisering i den utfällbara menyn. Du kan sedan konfigurera krypteringsnyckeln och krypteringsparametrarna på följande sätt:
Skapa en eller flera krypteringsnycklar. En krypteringsnyckel är skiftlägeskänslig och kan innehålla valfri kombination av alfanumeriska tecken. Andra typer av tecken, inklusive blanksteg, tillåts inte. Den maximala längden är 250 tecken. För att säkerställa att dina krypteringsnycklar är slumpmässiga rekommenderar vi att du skapar dem med hjälp av OpenSSL-verktyget.
OpenSSL-verktyget har följande syntax:
rand -hex <key length>
Till exempel:
OpenSSL> rand -hex 32
Undvik driftstopp genom att skapa både en primär och en säkerhetskopia. En säkerhetskopia ger oavbruten åtkomst till ditt innehåll när din primära nyckel uppdateras.
Ange en unik krypteringsnyckel i rutan Primärnyckel och ange en säkerhetskopia i rutan Säkerhetskopieringsnyckel .
Välj den lägsta krypteringsversionen för varje nyckel i listan Lägsta krypteringsversion och välj sedan Uppdatera:
- V2: Anger att nyckeln kan användas för att generera token version 2.0 och 3.0. Använd endast det här alternativet om du övergår från en äldre version 2.0-krypteringsnyckel till en version 3.0-nyckel.
- V3: (Rekommenderas) Anger att nyckeln endast kan användas för att generera version 3.0-token.
Använd krypteringsverktyget för att konfigurera krypteringsparametrar och generera en token. Med krypteringsverktyget kan du tillåta eller neka begäranden baserat på förfallotid, land/region, referent, protokoll och klient-IP (i valfri kombination). Även om det inte finns någon gräns för antalet och kombinationen av parametrar som kan kombineras för att bilda en token, är den totala längden på en token begränsad till 512 tecken.
Ange värden för en eller flera av följande krypteringsparametrar i avsnittet Kryptera verktyg :
Parameternamn beskrivning ec_expire Tilldelar en förfallotid till en token, varefter token upphör att gälla. Begäranden som skickas efter förfallotiden nekas. Den här parametern använder en Unix-tidsstämpel, som baseras på antalet sekunder sedan unix-standardepoken "1/1/1970 00:00:00 GMT". (Du kan använda onlineverktyg för att konvertera mellan standardtid och Unix-tid.) Om du till exempel vill att token ska upphöra att gälla vid
12/31/2016 12:00:00 GMT
anger du Unix-tidsstämpelvärdet ,1483185600
.ec_url_allow Gör att du kan skräddarsy token till en viss tillgång eller sökväg. Den begränsar åtkomsten till begäranden vars URL börjar med en specifik relativ sökväg. URL:er är skiftlägeskänsliga. Ange flera sökvägar genom att avgränsa varje sökväg med kommatecken. lägg inte till blanksteg. Beroende på dina krav kan du konfigurera olika värden för att ge olika åtkomstnivåer. För URL:en
http://www.mydomain.com/pictures/city/strasbourg.png
tillåts till exempel dessa begäranden för följande indatavärden:- Indatavärde /: Alla begäranden tillåts.
- Indatavärdet '/pictures', följande begäranden tillåts:
- 'http://www.mydomain.com/pictures.png'
- 'http://www.mydomain.com/pictures/city/strasbourg.png'
- 'http://www.mydomain.com/picturesnew/city/strasbourgh.png'
- Indatavärde /pictures/: Endast begäranden som innehåller sökvägen "/pictures/" tillåts. Till exempel "http://www.mydomain.com/pictures/city/strasbourg.png".
- Indatavärdet "/pictures/city/strasbourg.png": Endast begäranden för den här specifika sökvägen och tillgången tillåts.
ec_country_allow Tillåter endast begäranden som kommer från ett eller flera angivna länder/regioner. Begäranden som kommer från alla andra länder/regioner nekas. Använd två bokstäver [ISO 3166 country/region code](/previous-versions/azure/mt761717(v=azure.100)) för varje land/region och avgränsa var och en med kommatecken. lägg inte till något blanksteg. Om du till exempel bara vill tillåta åtkomst från USA och Frankrike anger du "US,FR". ec_country_deny Nekar begäranden som kommer från ett eller flera angivna länder/regioner. Begäranden som kommer från alla andra länder/regioner tillåts. Implementeringen är densamma som parametern ec_country_allow . Om det finns en lands-/regionkod i parametrarna ec_country_allow och ec_country_deny har parametern ec_country_allow företräde. ec_ref_allow Tillåter endast begäranden från den angivna referensen. En referens identifierar URL:en för webbsidan som är länkad till den resurs som begärs. Inkludera inte protokollet i parametervärdet. Följande typer av indata tillåts:
- Ett värdnamn eller ett värdnamn och en sökväg.
- Flera refererare. Om du vill lägga till flera refererare separerar du varje referens med ett kommatecken. lägg inte till något blanksteg. Om du anger ett referensvärde, men referensinformationen inte skickas i begäran på grund av webbläsarkonfigurationen, nekas begäran som standard.
- Begäranden med information om saknade eller tomma refererare. Som standard blockerar parametern ec_ref_allow dessa typer av begäranden. Om du vill tillåta dessa begäranden anger du antingen texten "saknas" eller anger ett tomt värde (med hjälp av ett avslutande kommatecken).
- Underdomäner. Om du vill tillåta underdomäner anger du en asterisk (\*). Om du till exempel vill tillåta alla underdomäner av "contoso.com" anger du '*.contoso.com'.
Om du till exempel vill tillåta åtkomst för begäranden från
www.contoso.com
, alla underdomäner undercontoso2.com
och begäranden med tomma eller saknade refererare anger duwww.contoso.com,*.contoso.com,missing
.ec_ref_deny Nekar begäranden från den angivna referensen. Implementeringen är densamma som parametern ec_ref_allow . Om en referens finns i parametrarna ec_ref_allow och ec_ref_deny har parametern ec_ref_allow företräde. ec_proto_allow Tillåter endast begäranden från det angivna protokollet. Giltiga värden är "http", "https" eller "http,https". ec_proto_deny Nekar begäranden från det angivna protokollet. Implementeringen är densamma som parametern ec_proto_allow . Om ett protokoll finns i parametrarna ec_proto_allow och ec_proto_deny har parametern ec_proto_allow företräde. ec_clientip Begränsar åtkomsten till den angivna beställarens IP-adress. Både Internet Protocol version 4 (IPv4) och Internet Protocol version 6 (IPv6) stöds. Du kan ange antingen en ENSKILD IP-adress för begäran eller IP-adresser som är associerade med ett specifikt undernät. Till exempel tillåter "11.22.33.0/22" begäranden från IP-adresserna 11.22.32.1 till 11.22.35.254. När du har angett krypteringsparametervärden väljer du en nyckel som ska krypteras (om du har skapat både en primär nyckel och en säkerhetskopia) från listan Nyckel till kryptering .
Välj en krypteringsversion från listan Krypteringsversion : V2 för version 2 eller V3 för version 3 (rekommenderas).
Välj Kryptera för att generera token.
När token har genererats visas den i rutan Genererad token . Om du vill använda token lägger du till den som en frågesträng i slutet av filen i url-sökvägen. Exempel:
http://www.domain.com/content.mov?a4fbc3710fd3449a7c99986b
Du kan också testa din token med dekrypteringsverktyget så att du kan visa tokenparametrarna. Klistra in tokenvärdet i rutan Token till Dekryptera . Välj den krypteringsnyckel som ska användas från listan Nyckel till dekryptera och välj sedan Dekryptera.
När token har dekrypterats visas dess parametrar i rutan Ursprungliga parametrar .
Du kan också anpassa vilken typ av svarskod som returneras när en begäran nekas. Välj Aktiverad och välj sedan svarskoden i listan Svarskod . Rubriknamn anges automatiskt till Plats. Välj Spara för att implementera den nya svarskoden. För vissa svarskoder måste du också ange URL:en för felsidan i rutan Rubrikvärde . Svarskoden 403 (Förbjuden) är markerad som standard.
Under HTTP Large väljer du Regelmotor. Du använder regelmotorn för att definiera sökvägar för att tillämpa funktionen, aktivera funktionen för tokenautentisering och aktivera extra tokenautentiseringsrelaterade funktioner. Mer information finns i Referens för regelmotor.
Välj en befintlig regel eller skapa en ny regel för att definiera den tillgång eller sökväg som du vill tillämpa tokenautentisering för.
Om du vill aktivera tokenautentisering för en regel väljer du Tokenautentisering i listan Funktioner och väljer sedan Aktiverad. Välj Uppdatera om du uppdaterar en regel eller Lägg till om du skapar en regel.
I regelmotorn kan du även aktivera fler tokenautentiseringsrelaterade funktioner. Om du vill aktivera någon av följande funktioner väljer du den i listan Funktioner och väljer sedan Aktiverad.
Token Auth Denial Code: Avgör vilken typ av svar som returneras till en användare när en begäran nekas. Regler som anges här åsidosätter svarskoden som anges i avsnittet Anpassad överbelastningshantering på den tokenbaserade autentiseringssidan.
Tokenautentisering Ignorera URL-ärende: Avgör om url:en som används för att verifiera token är skiftlägeskänslig.
Parameter för tokenautentisering: Byter namn på frågesträngsparametern för tokenautentisering som visas i den begärda URL:en.
Du kan anpassa din token genom att komma åt källkoden i GitHub. Tillgängliga språk är:
- C
- C#
- PHP
- Perl
- Java
- Python
Azure Content Delivery Network-funktioner och leverantörspriser
Information om funktioner finns i Produktfunktioner för Azure Content Delivery Network. Mer information om priser finns i Priser för Content Delivery Network.