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:
- HttpClientHandler Utwórz obiekt, którego
Proxy
właściwość jest ustawiona. - Utwórz obiekt opcji klienta usługi, którego Transport właściwość jest ustawiona na
HttpClientTransport
obiekt akceptującyHttpClientHandler
wystąpienie. - 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 iGATEWAY_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