Delen via


Een proxy configureren bij het gebruik van de Azure SDK voor .NET

Als uw organisatie het gebruik van een proxyserver nodig heeft voor toegang tot internetbronnen, is een bepaalde configuratie vereist voor het gebruik van de Azure SDK voor .NET-clientbibliotheken. Zodra de proxy is geconfigureerd, wordt de proxy toegepast op het onderliggende HttpClient exemplaar dat wordt gebruikt voor HTTP-bewerkingen.

De proxy kan worden geconfigureerd via code of via een omgevingsvariabele. De gekozen benadering is afhankelijk van het gewenste gedrag. Stel de juiste omgevingsvariabele in als u wilt dat de proxy globaal wordt toegepast op alle serviceclients die in het huidige proces zijn gemaakt. U kunt de proxy ook configureren via code om de instellingen selectief toe te passen op serviceclients.

Belangrijk

De volgende instructies zijn alleen van toepassing op bibliotheken met een afhankelijkheid van Azure.Core.

Configureren met behulp van code

Voer de volgende stappen uit om programmatisch een proxy te configureren:

  1. Maak een HttpClientHandler object waarvan de Proxy eigenschap is ingesteld.
  2. Maak een serviceclientoptiesobject waarvan de Transport eigenschap is ingesteld op een HttpClientTransport object dat het HttpClientHandler exemplaar accepteert.
  3. Geef het object met serviceclientopties door aan de serviceclientconstructor.

Als u de Azure Key Vault Secrets-bibliotheek als voorbeeld gebruikt, hebt u de volgende code:

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);

Configureren met behulp van omgevingsvariabelen

De volgende tabel bevat een inventaris van omgevingsvariabelen die kunnen worden ingesteld om een proxy te configureren voor gebruik.

Omgevingsvariabele Doel
HTTP_PROXY of http_proxy De proxyserver die wordt gebruikt voor HTTP-aanvragen.
HTTPS_PROXY of https_proxy De proxyserver die wordt gebruikt voor HTTPS-aanvragen.
ALL_PROXY of all_proxy De proxyserver die wordt gebruikt voor ZOWEL HTTP- als HTTPS-aanvragen.
NO_PROXY of no_proxy Een door komma's gescheiden lijst met hostnamen die moeten worden uitgesloten van proxying.
GATEWAY_INTERFACE Indicator dat de app wordt uitgevoerd in een CGI-omgeving (Common Gateway Interface). Voorbeeldwaarde: CGI/1.1

Zie de code voor een goed begrip van hoe deze omgevingsvariabelen worden verwerkt. Houd rekening met het volgende gedrag:

  • Elke omgevingsvariabele in de voorgaande tabel, behalve GATEWAY_INTERFACE, kan ook worden gedefinieerd als kleine letters. Het formulier in kleine letters heeft voorrang op het hoofdletterformulier.'
  • Als beide http_proxy en GATEWAY_INTERFACE niet gedefinieerd zijn, HTTP_PROXY wordt gebruikt.
  • ALL_PROXY wordt alleen beschouwd als een HTTP- of HTTPS-proxy niet is gedefinieerd.
  • Protocolspecifieke omgevingsvariabelen hebben voorrang op ALL_PROXY.

De URL van de proxyserver heeft de vorm http[s]://[username:password@]<ip_address_or_hostname>:<port>/, waarbij de username:password combinatie optioneel is. Neem contact op met de netwerkbeheerder om het IP-adres of de hostnaam, poort en referenties voor uw proxyserver op te halen.

In de volgende voorbeelden ziet u hoe u de juiste omgevingsvariabelen instelt in opdrachtshell -omgevingen (Windows) en bash -omgevingen (Linux/macOS). Als u de juiste omgevingsvariabele instelt, zorgt u ervoor dat de Azure SDK voor .NET-bibliotheken de proxyserver tijdens runtime gebruikt.

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