Wykorzystanie Azure Front Door Standard/Premium z Cross-Origin Resource Sharing (CORS)

Dotyczy: ✔️ Front Door Standard ✔️ Front Door Premium

CORS (Cross Origin Resource Sharing) to funkcja HTTP, która umożliwia aplikacji webowej działającej w jednej domenie dostęp do zasobów w innej domenie. Aby ograniczyć możliwość ataków skryptowych na różne strony, wszystkie nowoczesne przeglądarki internetowe implementują ograniczenie bezpieczeństwa znane jako polityka tego samego źródła. To ograniczenie uniemożliwia wywoływanie interfejsów API w innej domenie przez stronę internetową. Mechanizm CORS zapewnia bezpieczny sposób umożliwienia jednemu źródłu (domenie źródłowej) wywoływania API w innym źródle.

Jak to działa

Istnieją dwa typy żądań CORS: proste izłożone.

W przypadku prostych żądań:

  1. Przeglądarka wysyła żądanie CORS z innym nagłówkiem HTTP Origin request. Wartość tego nagłówka to źródło, które obsługiwało stronę nadrzędną, definiowane jako połączenie protokołu,domeny i portu. Gdy strona z https://www.contoso.com próbuje uzyskać dostęp do danych użytkownika w początkowym miejscufabrikam.com, następujący nagłówek żądania jest wysyłany do:fabrikam.com

    Origin: https://www.contoso.com

  2. Serwer może odpowiedzieć jedną z następujących odpowiedzi:

    • Nagłówek Access-Control-Allow-Origin w odpowiedzi wskazujący, która witryna źródła jest dozwolona. Przykład:

      Access-Control-Allow-Origin: https://www.contoso.com

    • Kod błędu HTTP, taki jak 403, jeśli serwer nie zezwala na żądanie cross-origin po sprawdzeniu nagłówka Origin

    • Nagłówek Access-Control-Allow-Origin z symbolem wieloznacznym, który zezwala na wszystkie źródła pochodzenia:

      Access-Control-Allow-Origin: *

Dla złożonych żądań

Złożone żądanie to żądanie CORS, w którym przeglądarka musi wysłać żądanie wstępne (czyli wstępną sondę) przed wysłaniem faktycznego żądania CORS. Żądanie przedlotowe prosi serwer o pozwolenie na kontynuację oryginalnego żądania CORS. To OPTIONS żądanie na ten sam adres URL.

Wskazówka

Aby uzyskać więcej informacji o przepływach CORS i typowych pułapkach, zobacz Przewodnik po CORS dla API REST.

Scenariusze z symbolami wieloznacznymi lub pojedynczym pochodzeniem

CORS w Azure Front Door działa automatycznie bez dodatkowej konfiguracji, gdy nagłówek Access-Control-Allow-Origin jest ustawiony na wolny (*) lub pojedynczy punkt początkowy. Azure Front Door buforuje pierwszą odpowiedź, a kolejne żądania używają tego samego nagłówka.

Jeśli wysyłasz żądania do Azure Front Door przed ustawieniem CORS na swoim Origin, musisz usunąć zawartość na swoim punkcie końcowym, aby załadować zawartość z nagłówkiem Access-Control-Allow-Origin.

Scenariusze wielu początków

Jeśli trzeba pozwolić na konkretną listę początków CORS, sprawy się komplikują. Problem pojawia się, gdy CDN buforuje nagłówek Access-Control-Allow-Origin dla pierwszego początku CORS. Gdy inny origin CORS wykonuje kolejne żądanie, CDN obsługuje buforowany nagłówek Access-Control-Allow-Origin , który nie pasuje. Kilka metod może rozwiązać ten problem.

Azure Front Door ruleset

W Azure Front Door możesz stworzyć regułę w zestawie Azure Front Door Rules Set, aby sprawdzić nagłówek Origin na żądaniu. Jeśli to poprawne źródło, twoja reguła ustawia nagłówek Access-Control-Allow-Origin z poprawną wartością. W takim przypadku nagłówek Access-Control-Allow-Origin z serwera źródłowego pliku jest ignorowany, a silnik reguł Azure Front Door całkowicie zarządza dozwolonymi początkami CORS.

Zrzut ekranu z przykładem reguł z zestawem reguł.

Wskazówka

Możesz dodać więcej akcji do reguły, aby modyfikować inne nagłówki odpowiedzi, takie jak Access-Control-Allow-Methods.

Następny krok