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:
- Erstellen Sie ein HttpClientHandler Objekt, dessen
Proxy
Eigenschaft festgelegt ist. - Erstellen Sie ein Dienstclient-Optionsobjekt, dessen Eigenschaft auf ein
HttpClientTransport
Objekt festgelegt ist, das Transport dieHttpClientHandler
Instanz akzeptiert. - Ü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_INTERFACE
von Kleinbuchstaben kann alternativ definiert werden. Das Kleinbuchstabenformular hat Vorrang vor dem Großbuchstaben.' - Wenn beide
http_proxy
undGATEWAY_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