Udostępnij za pośrednictwem


Konfigurowanie serwera proxy podczas korzystania z zestawu Azure SDK dla platformy .NET

Jeśli organizacja wymaga użycia serwera proxy do uzyskiwania dostępu do zasobów internetowych, wymagana jest konfiguracja zestawu Azure SDK dla bibliotek klienckich platformy .NET. Po skonfigurowaniu serwer proxy jest stosowany do bazowego HttpClient wystąpienia używanego na potrzeby operacji HTTP.

Serwer proxy można skonfigurować za pomocą kodu lub zmiennej środowiskowej. Wybrane podejście zależy od żądanego zachowania. Ustaw odpowiednią zmienną środowiskową, jeśli serwer proxy ma być stosowany globalnie do wszystkich klientów usługi utworzonych w ramach bieżącego procesu. Alternatywnie skonfiguruj serwer proxy za pomocą kodu, aby selektywnie zastosować ustawienia do klientów usługi.

Ważne

Poniższe instrukcje dotyczą tylko bibliotek z zależnością od platformy Azure.Core.

Konfigurowanie przy użyciu kodu

Aby programowo skonfigurować serwer proxy, wykonaj następujące kroki:

  1. HttpClientHandler Utwórz obiekt, którego Proxy właściwość jest ustawiona.
  2. Utwórz obiekt opcji klienta usługi, którego Transport właściwość jest ustawiona na HttpClientTransport obiekt akceptujący HttpClientHandler wystąpienie.
  3. Przekaż obiekt opcji klienta usługi do konstruktora klienta usługi.

Korzystając z biblioteki wpisów tajnych usługi Azure Key Vault na przykład, będziesz mieć następujący kod:

using System.Net;
using Azure.Core.Pipeline;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;

using HttpClientHandler handler = new()
{
    Proxy = new WebProxy(new Uri("<proxy-url>")),
};

SecretClientOptions options = new()
{
    Transport = new HttpClientTransport(handler),
};
SecretClient client = new(
    new Uri("https://<key-vault-name>.vault.azure.net/"),
    new DefaultAzureCredential(),
    options);

Konfigurowanie przy użyciu zmiennych środowiskowych

Poniższa tabela zawiera spis zmiennych środowiskowych, które można ustawić w celu skonfigurowania serwera proxy do użycia.

Zmienna środowiskowa Purpose
HTTP_PROXY lub http_proxy Serwer proxy używany na żądaniach HTTP.
HTTPS_PROXY lub https_proxy Serwer proxy używany na żądaniach HTTPS.
ALL_PROXY lub all_proxy Serwer proxy używany zarówno dla żądań HTTP, jak i HTTPS.
NO_PROXY lub no_proxy Rozdzielana przecinkami lista nazw hostów do wykluczenia z serwera proxy.
GATEWAY_INTERFACE Wskaźnik, że aplikacja jest uruchomiona w środowisku CGI (Common Gateway Interface). Przykładowa wartość: CGI/1.1

Aby uzyskać szczegółowe informacje na temat przetwarzania tych zmiennych środowiskowych, zobacz kod. Należy pamiętać o następujących zachowaniach:

  • Każda zmienna środowiskowa w poprzedniej tabeli, z wyjątkiem GATEWAY_INTERFACE, może być alternatywnie zdefiniowana jako małe litery. Forma małych liter ma pierwszeństwo przed wielkimi literami".
  • Jeśli oba http_proxy elementy i GATEWAY_INTERFACE są niezdefiniowane, HTTP_PROXY jest używany.
  • ALL_PROXY jest brane pod uwagę tylko wtedy, gdy serwer proxy HTTP lub HTTPS jest niezdefiniowany.
  • Zmienne środowiskowe specyficzne dla protokołu mają pierwszeństwo przed ALL_PROXY.

Adres URL serwera proxy ma postać http[s]://[username:password@]<ip_address_or_hostname>:<port>/, gdzie kombinacja jest opcjonalna username:password . Aby uzyskać adres IP lub nazwę hosta, port i poświadczenia serwera proxy, skontaktuj się z administratorem sieci.

W poniższych przykładach pokazano, jak ustawić odpowiednie zmienne środowiskowe w środowiskach powłoki poleceń (Windows) i powłoki bash (Linux/macOS). Ustawienie odpowiedniej zmiennej środowiskowej powoduje, że zestaw Azure SDK dla bibliotek platformy .NET może używać serwera proxy w czasie wykonywania.

rem Non-authenticated HTTP server:
set HTTP_PROXY=http://10.10.1.10:1180

rem Authenticated HTTP server:
set HTTP_PROXY=http://username:password@10.10.1.10:1180

rem Non-authenticated HTTPS server:
set HTTPS_PROXY=https://10.10.1.10:1180

rem Authenticated HTTPS server:
set HTTPS_PROXY=https://username:password@10.10.1.10:1180