Teilen über


Konfigurieren eines Proxys bei Verwendung des Azure SDK für .NET

Wenn Ihre Organisation die Verwendung eines Proxyservers für den Zugriff auf Internetressourcen erfordert, ist eine Konfiguration erforderlich, um das Azure SDK für .NET-Clientbibliotheken zu verwenden. Nach der Konfiguration wird der Proxy auf die zugrunde liegende HttpClient Instanz angewendet, die für HTTP-Vorgänge verwendet wird.

Der Proxy kann über Code oder über eine Umgebungsvariable konfiguriert werden. Der gewählte Ansatz hängt vom gewünschten Verhalten ab. Legen Sie die entsprechende Umgebungsvariable fest, wenn der Proxy global auf alle Dienstclients angewendet werden soll, die innerhalb des aktuellen Prozesses erstellt wurden. Alternativ können Sie den Proxy über Code so konfigurieren, dass die Einstellungen selektiv auf Dienstclients angewendet werden.

Wichtig

Die folgenden Anweisungen gelten nur für Bibliotheken mit einer Abhängigkeit von Azure.Core.

Konfigurieren mithilfe von Code

Führen Sie die folgenden Schritte aus, um einen Proxy programmgesteuert zu konfigurieren:

  1. Erstellen Sie ein HttpClientHandler Objekt, dessen Proxy Eigenschaft festgelegt ist.
  2. Erstellen Sie ein Dienstclient-Optionsobjekt, dessen Eigenschaft auf ein HttpClientTransport Objekt festgelegt ist, das Transport die HttpClientHandler Instanz akzeptiert.
  3. Übergeben Sie das Dienstclientoptionen-Objekt an den Dienstclientkonstruktor.

Wenn Sie die Azure Key Vault Secrets-Bibliothek als Beispiel verwenden, verfügen Sie über den folgenden 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);

Konfigurieren mithilfe von Umgebungsvariablen

Die folgende Tabelle enthält eine Bestandsaufnahme der Umgebungsvariablen, die zum Konfigurieren eines Proxys für die Verwendung festgelegt werden können.

Umgebungsvariable Zweck
HTTP_PROXY oder http_proxy Der proxyserver, der für HTTP-Anforderungen verwendet wird.
HTTPS_PROXY oder https_proxy Der proxyserver, der für HTTPS-Anforderungen verwendet wird.
ALL_PROXY oder all_proxy Der Proxyserver, der sowohl für HTTP- als auch für HTTPS-Anforderungen verwendet wird.
NO_PROXY oder no_proxy Eine durch Trennzeichen getrennte Liste von Hostnamen, die von der Proxyerstellung ausgeschlossen werden sollen.
GATEWAY_INTERFACE Indikator, dass die App in einer CGI-Umgebung (Common Gateway Interface) ausgeführt wird. Beispielwert: CGI/1.1

Ein umfassendes Verständnis dafür, wie diese Umgebungsvariablen verarbeitet werden, finden Sie im Code. Beachten Sie die folgenden Verhaltensweisen:

  • Jede Umgebungsvariable in der vorherigen Tabelle mit Ausnahme GATEWAY_INTERFACEvon Kleinbuchstaben kann alternativ definiert werden. Das Kleinbuchstabenformular hat Vorrang vor dem Großbuchstaben.'
  • Wenn beide http_proxy und GATEWAY_INTERFACE nicht definiert sind, HTTP_PROXY wird verwendet.
  • ALL_PROXY wird nur berücksichtigt, wenn entweder ein HTTP- oder ein HTTPS-Proxy nicht definiert ist.
  • Protokollspezifische Umgebungsvariablen haben Vorrang.ALL_PROXY

Die Proxyserver-URL verwendet das Format http[s]://[username:password@]<ip_address_or_hostname>:<port>/, in dem die username:password Kombination optional ist. Um die IP-Adresse oder den Hostnamen, portieren und Anmeldeinformationen für Ihren Proxyserver abzurufen, wenden Sie sich an Ihren Netzwerkadministrator.

Die folgenden Beispiele zeigen, wie Die entsprechenden Umgebungsvariablen in Befehlsshell-Umgebungen (Windows) und Bash (Linux/macOS) festgelegt werden. Das Festlegen der entsprechenden Umgebungsvariable bewirkt, dass das Azure SDK für .NET-Bibliotheken den Proxyserver zur Laufzeit verwendet.

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