Konfigurowanie współużytkowania zasobów między źródłami (CORS) dla usługi Azure Container Apps

Domyślnie żądania wysyłane za pośrednictwem przeglądarki do domeny, która nie jest zgodna z domeną pochodzenia strony, są blokowane. Aby uniknąć tego ograniczenia dla usług wdrożonych w usłudze Container Apps, możesz włączyć mechanizm CORS.

W tym artykule pokazano, jak włączyć i skonfigurować mechanizm CORS w aplikacji kontenera.

Po włączeniu mechanizmu CORS można skonfigurować następujące ustawienia:

Ustawienie Wyjaśnienie
Zezwalaj na poświadczenia Wskazuje, czy ma być zwracany Access-Control-Allow-Credentials nagłówek.
Maksymalny wiek Konfiguruje Access-Control-Max-Age nagłówek odpowiedzi, aby wskazać, jak długo (w sekundach) można buforować wyniki żądania przed lotem CORS.
Dozwolone źródła Lista źródeł dozwolonych dla żądań między źródłami (na przykład https://www.contoso.com). Steruje nagłówka Access-Control-Allow-Origin odpowiedzi. Użyj polecenia * , aby zezwolić na wszystkie.
Dozwolone metody Lista metod żądań HTTP dozwolonych w żądaniach między źródłami. Steruje nagłówka Access-Control-Allow-Methods odpowiedzi. Użyj polecenia * , aby zezwolić na wszystkie.
Dozwolone nagłówki Lista nagłówków dozwolonych w żądaniach między źródłami. Steruje nagłówka Access-Control-Allow-Headers odpowiedzi. Użyj polecenia * , aby zezwolić na wszystkie.
Uwidaczniaj nagłówki Domyślnie nie wszystkie nagłówki odpowiedzi są widoczne dla kodu JavaScript po stronie klienta w żądaniu między źródłami. Uwidocznione nagłówki są dodatkowymi serwerami nagłówków, które mogą zawierać odpowiedź. Steruje nagłówka Access-Control-Expose-Headers odpowiedzi. Użyj polecenia * , aby uwidocznić wszystkie.
Właściwości Wyjaśnienie Type
allowCredentials Wskazuje, czy ma być zwracany Access-Control-Allow-Credentials nagłówek. boolean
maxAge Konfiguruje Access-Control-Max-Age nagłówek odpowiedzi, aby wskazać, jak długo (w sekundach) można buforować wyniki żądania przed lotem CORS. integer
allowedOrigins Lista źródeł dozwolonych dla żądań między źródłami (na przykład https://www.contoso.com). Steruje nagłówka Access-Control-Allow-Origin odpowiedzi. Użyj polecenia * , aby zezwolić na wszystkie. tablica ciągów
allowedMethods Lista metod żądań HTTP dozwolonych w żądaniach między źródłami. Steruje nagłówka Access-Control-Allow-Methods odpowiedzi. Użyj polecenia * , aby zezwolić na wszystkie. tablica ciągów
allowedHeaders Lista nagłówków dozwolonych w żądaniach między źródłami. Steruje nagłówka Access-Control-Allow-Headers odpowiedzi. Użyj polecenia * , aby zezwolić na wszystkie. tablica ciągów
exposeHeaders Domyślnie nie wszystkie nagłówki odpowiedzi są widoczne dla kodu JavaScript po stronie klienta w żądaniu między źródłami. Uwidocznione nagłówki są dodatkowymi serwerami nagłówków, które mogą zawierać odpowiedź. Steruje nagłówka Access-Control-Expose-Headers odpowiedzi. Użyj polecenia * , aby uwidocznić wszystkie. tablica ciągów

Aby uzyskać więcej informacji, zobacz dokumentację web hypertext Application Technology Working Group (WHATWG) dotyczącą prawidłowych odpowiedzi HTTP z żądania pobierania.

Włączanie i konfigurowanie mechanizmu CORS

  1. Przejdź do aplikacji kontenera w witrynie Azure Portal.

  2. W menu ustawień wybierz pozycję CORS.

    Screenshot showing how to enable CORS in the Azure portal.

Po włączeniu mechanizmu CORS można dodawać, edytować i usuwać wartości dozwolonych źródeł, dozwolonych metod, dozwolonych nagłówków i uwidaczniać nagłówki.

Aby zezwolić na dopuszczalne wartości metod, nagłówków lub źródeł, wprowadź * jako wartość.

Uwaga

Aktualizacje do ustawień konfiguracji za pośrednictwem wiersza polecenia zastępuje bieżące ustawienia. Upewnij się, że bieżące ustawienia są uwzględniane w nowych wartościach mechanizmu CORS, które chcesz ustawić, aby upewnić się, że konfiguracja pozostaje spójna.

Poniższy kod reprezentuje formularz, który ustawienia mechanizmu CORS są używane w szablonie usługi ARM podczas konfigurowania aplikacji kontenera.

{ 
  ... 
  "properties": { 
      ... 
      "configuration": { 
         ... 
          "ingress": { 
              ... 
              "corsPolicy": { 
                "allowCredentials": true,
                "maxAge": 5000,
                "allowedOrigins": ["https://example.com"], 
                "allowedMethods": ["GET","POST"], 
                "allowedHeaders": [], 
                "exposeHeaders": []
              } 
          } 
      } 
  } 
}

Następne kroki