Zabezpieczanie zasobów usługi Azure Content Delivery Network przy użyciu uwierzytelniania tokenu

Ważne

Jest to funkcja usługi Azure CDN Premium tylko z usługi Edgio , aby skonfigurować reguły w usłudze Azure CDN firmy Microsoft , użyj aparatu reguł standardowych. Zaawansowane reguły nie są dostępne dla usługi Azure CDN z usługi Akamai. Aby zapoznać się z pełnym porównaniem funkcji usługi CDN, zobacz Funkcje produktów Azure CDN.

Omówienie

Uwierzytelnianie tokenów to mechanizm, który umożliwia uniemożliwienie sieci dostarczania zawartości platformy Azure obsługi zasobów nieautoryzowanym klientom. Uwierzytelnianie tokenu jest zwykle wykonywane, aby zapobiec linkowaniu zawartości, w której inna witryna internetowa, taka jak tablica komunikatów, używa zasobów bez uprawnień. Łączenie gorąca może mieć wpływ na koszty dostarczania zawartości. Po włączeniu uwierzytelniania tokenu w sieci dostarczania zawartości żądania są uwierzytelniane przez serwer brzegowy sieci dostarczania zawartości, zanim sieć dostarczania zawartości dostarczy zawartość.

Jak to działa

Uwierzytelnianie tokenu sprawdza, czy żądania są generowane przez zaufaną witrynę, wymagając od żądań zawierających wartość tokenu, która przechowuje zakodowane informacje o żądaniu. Zawartość jest obsługiwana przez osoby żądającego tylko wtedy, gdy zakodowane informacje spełniają wymagania; w przeciwnym razie żądania są odrzucane. Wymagania można skonfigurować przy użyciu co najmniej jednego z następujących parametrów:

  • Kraj/region: Zezwalaj lub odrzucaj żądania pochodzące z krajów/regionów określonych przez kod kraju/regionu.
  • Adres URL: Zezwalaj tylko na żądania zgodne z określonym zasobem lub ścieżką.
  • Host: zezwalaj na żądania używające określonych hostów w nagłówku żądania lub odmawiaj ich.
  • Odwołanie: Zezwalaj lub odrzucaj żądanie od określonego odwołania.
  • Adres IP: zezwalaj tylko na żądania pochodzące z określonego adresu IP lub podsieci IP.
  • Protokół: Zezwalaj na żądania lub odrzucaj je na podstawie protokołu używanego do żądania zawartości.
  • Czas wygaśnięcia: przypisz okres daty i godziny, aby upewnić się, że łącze pozostaje prawidłowe tylko przez ograniczony czas.

Aby uzyskać więcej informacji, zobacz szczegółowe przykłady konfiguracji dla każdego parametru w temacie Konfigurowanie uwierzytelniania tokenu.

Ważne

Jeśli autoryzacja tokenu jest włączona dla dowolnej ścieżki na tym koncie, tryb standardowej pamięci podręcznej jest jedynym trybem, który może być używany do buforowania ciągów zapytania. Aby uzyskać więcej informacji, zobacz Control Azure Content Delivery Network caching behavior with query strings (Kontrolowanie zachowania buforowania usługi Azure Content Delivery Network za pomocą ciągów zapytań).

Architektura odwołań

Na poniższym diagramie przepływu pracy opisano, jak sieć dostarczania zawartości używa uwierzytelniania tokenu do pracy z aplikacją internetową.

Zrzut ekranu przedstawiający przepływ pracy uwierzytelniania tokenu sieciowego dostarczania zawartości.

Logika walidacji tokenu w punkcie końcowym sieci dostarczania zawartości

W poniższym schemacie blokowym opisano, jak usługa Azure Content Delivery Network weryfikuje żądanie klienta po skonfigurowaniu uwierzytelniania tokenu w punkcie końcowym sieci dostarczania zawartości.

Zrzut ekranu przedstawiający logikę weryfikacji tokenu sieciowego dostarczania zawartości.

Konfigurowanie uwierzytelniania tokenu

  1. W witrynie Azure Portal przejdź do profilu sieci dostarczania zawartości, a następnie wybierz pozycję Zarządzaj , aby uruchomić portal uzupełniający.

    Zrzut ekranu przedstawiający przycisk zarządzania profilem sieci dostarczania zawartości.

  2. Umieść kursor na dużym protokole HTTP, a następnie wybierz pozycję Uwierzytelnianie tokenu w oknie wysuwaym. Następnie można skonfigurować klucz szyfrowania i parametry szyfrowania w następujący sposób:

    1. Utwórz co najmniej jeden klucz szyfrowania. Klucz szyfrowania uwzględnia wielkość liter i może zawierać dowolną kombinację znaków alfanumerycznych. Wszelkie inne typy znaków, w tym spacje, nie są dozwolone. Maksymalna długość to 250 znaków. Aby upewnić się, że klucze szyfrowania są losowe, zaleca się ich utworzenie przy użyciu narzędzia OpenSSL.

      Narzędzie OpenSSL ma następującą składnię:

      rand -hex <key length>

      Na przykład:

      OpenSSL> rand -hex 32

      Aby uniknąć przestojów, utwórz zarówno klucz podstawowy, jak i klucz kopii zapasowej. Klucz kopii zapasowej zapewnia nieprzerwany dostęp do zawartości podczas aktualizowania klucza podstawowego.

    2. Wprowadź unikatowy klucz szyfrowania w polu Klucz podstawowy i opcjonalnie wprowadź klucz kopii zapasowej w polu Klucz kopii zapasowej.

    3. Wybierz minimalną wersję szyfrowania dla każdego klucza z listy Minimalna wersja szyfrowania, a następnie wybierz pozycję Aktualizuj:

      • Wersja 2: wskazuje, że klucz może służyć do generowania tokenów w wersji 2.0 i 3.0. Użyj tej opcji tylko wtedy, gdy przechodzisz ze starszej wersji klucza szyfrowania w wersji 2.0 do klucza w wersji 3.0.
      • Wersja 3: (Zalecane) Wskazuje, że klucz może służyć tylko do generowania tokenów w wersji 3.0.

      Zrzut ekranu przedstawiający klucz konfiguracji tokenu sieci dostarczania zawartości.

    4. Użyj narzędzia szyfrowania, aby skonfigurować parametry szyfrowania i wygenerować token. Za pomocą narzędzia szyfrowania można zezwalać na żądania lub odrzucać je na podstawie czasu wygaśnięcia, kraju/regionu, odwołania, protokołu i adresu IP klienta (w dowolnej kombinacji). Chociaż nie ma limitu liczby i kombinacji parametrów, które można połączyć w celu utworzenia tokenu, łączna długość tokenu jest ograniczona do 512 znaków.

      Zrzut ekranu przedstawiający narzędzie szyfrowania sieci dostarczania zawartości.

      Wprowadź wartości dla co najmniej jednego z następujących parametrów szyfrowania w sekcji Narzędzie szyfrowania:

      Nazwa parametru opis
      ec_expire Przypisuje czas wygaśnięcia do tokenu, po upływie którego token wygasa. Żądania przesłane po upływie czasu wygaśnięcia są odrzucane. Ten parametr używa znacznika czasu systemu Unix, który jest oparty na liczbie sekund od standardowej epoki unix '1/1/1/1970 00:00:00 GMT'. (Narzędzia online umożliwiają konwertowanie między czasem standardowym a czasem unix).

      Jeśli na przykład chcesz, aby token wygaśnie pod 12/31/2016 12:00:00 GMTadresem , wprowadź wartość znacznika czasu systemu Unix, 1483185600.

      ec_url_allow Umożliwia dostosowanie tokenów do określonego zasobu lub ścieżki. Ogranicza dostęp do żądań, których adres URL zaczyna się od określonej ścieżki względnej. W adresach URL jest rozróżniana wielkość liter. Wprowadź wiele ścieżek, oddzielając każdą ścieżkę przecinkami; nie dodawaj spacji. W zależności od wymagań można skonfigurować różne wartości, aby zapewnić inny poziom dostępu.

      Na przykład dla adresu URL http://www.mydomain.com/pictures/city/strasbourg.pngte żądania są dozwolone dla następujących wartości wejściowych:

      • Wartość wejściowa "/": Wszystkie żądania są dozwolone.
      • Wartość wejściowa "/pictures", dozwolone są następujące żądania:
        • "http://www.mydomain.com/pictures.png"
        • "http://www.mydomain.com/pictures/city/strasbourg.png"
        • "http://www.mydomain.com/picturesnew/city/strasbourgh.png"
      • Wartość wejściowa "/pictures/": dozwolone są tylko żądania zawierające ścieżkę "/pictures/". Na przykład 'http://www.mydomain.com/pictures/city/strasbourg.png'.
      • Wartość wejściowa "/pictures/city/strasbourg.png": Dozwolone są tylko żądania dotyczące tej konkretnej ścieżki i zasobu.
      ec_country_allow Zezwala tylko na żądania pochodzące z co najmniej jednego określonego kraju/regionów. Żądania pochodzące ze wszystkich innych krajów/regionów są odrzucane. Użyj dwuliterowej litery [kod kraju/regionu ISO 3166](/previous-versions/azure/mt761717(v=azure.100)) dla każdego kraju/regionu i rozdziel każdy z nich przecinkiem; nie dodawaj spacji. Jeśli na przykład chcesz zezwolić na dostęp tylko z Stany Zjednoczone i Francji, wprowadź wartość "US,FR".
      ec_country_deny Odrzuca żądania pochodzące z co najmniej jednego określonego kraju/regionu. Żądania pochodzące ze wszystkich innych krajów/regionów są dozwolone. Implementacja jest taka sama jak parametr ec_country_allow . Jeśli kod kraju/regionu znajduje się zarówno w parametrach ec_country_allow , jak i ec_country_deny , parametr ec_country_allow ma pierwszeństwo.
      ec_ref_allow Zezwala tylko na żądania z określonego odwołania. Odwołanie identyfikuje adres URL strony internetowej połączonej z żądanym zasobem. Nie dołączaj protokołu do wartości parametru.

      Dozwolone są następujące typy danych wejściowych:

      • Nazwa hosta lub nazwa hosta i ścieżka.
      • Wiele odwołań. Aby dodać wiele odwołań, oddziel poszczególne odwołania przecinkami; nie dodawaj spacji. Jeśli określisz wartość odwołania, ale informacje dotyczące odwołania nie zostaną wysłane w żądaniu ze względu na konfigurację przeglądarki, żądanie zostanie domyślnie odrzucone.
      • Żądania z brakującymi lub pustymi informacjami odwołania. Domyślnie parametr ec_ref_allow blokuje te typy żądań. Aby zezwolić na te żądania, wprowadź tekst "missing" lub wprowadź pustą wartość (przy użyciu końcowego przecinka).
      • Poddomen. Aby zezwolić na poddomeny, wprowadź gwiazdkę (\*). Aby na przykład zezwolić na wszystkie poddomeny "contoso.com", wprowadź "*.contoso.com".

      Aby na przykład zezwolić na dostęp do żądań z www.contoso.com, wszystkie poddomeny w obszarze contoso2.comi żądania z pustymi lub brakującymi odwołaniami, wprowadź .www.contoso.com,*.contoso.com,missing

      ec_ref_deny Odrzuca żądania od określonego odwołania. Implementacja jest taka sama jak parametr ec_ref_allow . Jeśli odwołanie znajduje się zarówno w parametrach ec_ref_allow , jak i ec_ref_deny , parametr ec_ref_allow ma pierwszeństwo.
      ec_proto_allow Zezwala tylko na żądania z określonego protokołu. Prawidłowe wartości to "http", "https" lub "http,https".
      ec_proto_deny Odrzuca żądania z określonego protokołu. Implementacja jest taka sama jak parametr ec_proto_allow . Jeśli protokół występuje zarówno w parametrach ec_proto_allow , jak i ec_proto_deny , parametr ec_proto_allow ma pierwszeństwo.
      ec_clientip Ogranicza dostęp do adresu IP określonego osoby żądającego. Obsługiwane są oba protokoły internetowe w wersji 4 (IPv4) i protokół internetowy w wersji 6 (IPv6). Można określić pojedynczy adres IP żądania lub adresy IP skojarzone z określoną podsiecią. Na przykład "11.22.33.0/22" zezwala na żądania z adresów IP 11.22.32.1 do 11.22.35.254.
    5. Po zakończeniu wprowadzania wartości parametrów szyfrowania wybierz klucz do szyfrowania (jeśli utworzono zarówno klucz podstawowy, jak i klucz kopii zapasowej) z listy Klucz do szyfrowania .

    6. Wybierz wersję szyfrowania z listy Wersja szyfrowania: wersja V2 dla wersji 2 lub 3 dla wersji 3 (zalecane).

    7. Wybierz pozycję Szyfruj , aby wygenerować token.

      Po wygenerowaniu tokenu zostanie wyświetlony w polu Wygenerowany token . Aby użyć tokenu, dołącz go jako ciąg zapytania na końcu pliku w ścieżce adresu URL. Na przykład http://www.domain.com/content.mov?a4fbc3710fd3449a7c99986b.

    8. Opcjonalnie przetestuj token za pomocą narzędzia odszyfrowywania, aby wyświetlić parametry tokenu. Wklej wartość tokenu w polu Token to Decrypt (Odszyfrowywanie ). Wybierz klucz szyfrowania do użycia z listy Klucz do odszyfrowywania , a następnie wybierz pozycję Odszyfruj.

      Po odszyfrowaniu tokenu jego parametry są wyświetlane w polu Oryginalne parametry .

    9. Opcjonalnie dostosuj typ kodu odpowiedzi zwracanego po odmowie żądania. Wybierz pozycję Włączone, a następnie wybierz kod odpowiedzi z listy Kod odpowiedzi. Nazwa nagłówka jest automatycznie ustawiana na Wartość Lokalizacja. Wybierz pozycję Zapisz , aby zaimplementować nowy kod odpowiedzi. W przypadku niektórych kodów odpowiedzi należy również wprowadzić adres URL strony błędu w polu Wartość nagłówka. Kod odpowiedzi 403 (Zabronione) jest domyślnie wybierany.

  3. W obszarze Http Large (Duży protokół HTTP) wybierz pozycję Rules Engine (Aparat reguł). Aparat reguł służy do definiowania ścieżek w celu zastosowania funkcji, włączenia funkcji uwierzytelniania tokenu i włączenia dodatkowych funkcji związanych z uwierzytelnianiem tokenów. Aby uzyskać więcej informacji, zobacz Dokumentacja aparatu reguł.

    1. Wybierz istniejącą regułę lub utwórz nową regułę, aby zdefiniować zasób lub ścieżkę, dla której chcesz zastosować uwierzytelnianie tokenu.

    2. Aby włączyć uwierzytelnianie tokenu w regule, wybierz pozycję Uwierzytelnianie tokenu z listy Funkcje , a następnie wybierz pozycję Włączone. Wybierz pozycję Aktualizuj , jeśli aktualizujesz regułę lub Dodaj , jeśli tworzysz regułę.

      Zrzut ekranu przedstawiający przykład uwierzytelniania tokenu aparatu reguł sieci dostarczania zawartości.

  4. W aucie reguł można również włączyć więcej funkcji związanych z uwierzytelnianiem tokenów. Aby włączyć dowolną z następujących funkcji, wybierz ją z listy Funkcje , a następnie wybierz pozycję Włączone.

    • Kod odmowy uwierzytelniania tokenu: określa typ odpowiedzi zwracanej do użytkownika po odmowie żądania. Reguły ustawione tutaj zastępują kod odpowiedzi ustawiony w sekcji Niestandardowa obsługa odmowy na stronie uwierzytelniania opartego na tokenach.

    • Przypadek ignorowania adresu URL uwierzytelniania tokenu: określa, czy adres URL używany do sprawdzania poprawności tokenu uwzględnia wielkość liter.

    • Parametr uwierzytelniania tokenu: zmienia nazwę parametru ciągu zapytania uwierzytelniania tokenu wyświetlanego w żądanym adresie URL.

      Zrzut ekranu przedstawiający przykład ustawień uwierzytelniania tokenu aparatu reguł dostarczania zawartości.

  5. Token można dostosować, korzystając z kodu źródłowego w usłudze GitHub. Dostępne języki to:

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

Azure Content Delivery Network features and provider pricing (Funkcje i cennik dostawcy usługi Azure Content Delivery Network)

Aby uzyskać informacje o funkcjach, zobacz Funkcje produktu Azure Content Delivery Network. Aby uzyskać informacje o cenach, zobacz Cennik usługi Content Delivery Network.