Configurer un proxy lors de l’utilisation du Kit de développement logiciel (SDK) Azure pour .NET
Si votre organisation nécessite l’utilisation d’un serveur proxy pour accéder aux ressources Internet, une configuration est nécessaire pour utiliser le Kit de développement logiciel (SDK) Azure pour les bibliothèques clientes .NET. Une fois configuré, le proxy est appliqué à l’instance sous-jacente HttpClient
utilisée pour les opérations HTTP.
Le proxy peut être configuré via du code ou via une variable d’environnement. L’approche que vous choisissez dépend du comportement souhaité. Définissez la variable d’environnement appropriée si vous souhaitez que le proxy s’applique globalement à tous les clients de service créés dans le processus actuel. Vous pouvez également configurer le proxy via du code pour appliquer de manière sélective les paramètres aux clients de service.
Important
Les instructions suivantes s’appliquent uniquement aux bibliothèques avec une dépendance sur Azure.Core.
Configurer à l’aide du code
Pour configurer un proxy par programmation, procédez comme suit :
- Créez un HttpClientHandler objet dont
Proxy
la propriété est définie. - Créez un objet d’options client de service dont Transport la propriété est définie sur un
HttpClientTransport
objet acceptant l’instanceHttpClientHandler
. - Transmettez l’objet options du client de service au constructeur du client de service.
À l’aide de la bibliothèque de secrets Azure Key Vault comme exemple, vous disposez du code suivant :
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);
Configurer à l’aide de variables d’environnement
Le tableau suivant fournit un inventaire des variables d’environnement qui peuvent être définies pour configurer un proxy à utiliser.
Variable d’environnement | Objectif |
---|---|
HTTP_PROXY ou http_proxy |
Serveur proxy utilisé sur les requêtes HTTP. |
HTTPS_PROXY ou https_proxy |
Serveur proxy utilisé sur les requêtes HTTPS. |
ALL_PROXY ou all_proxy |
Serveur proxy utilisé pour les requêtes HTTP et HTTPS. |
NO_PROXY ou no_proxy |
Liste délimitée par des virgules de noms d’hôte à exclure du proxy. |
GATEWAY_INTERFACE |
Indicateur indiquant que l’application s’exécute dans un environnement CGI (Common Gateway Interface). Exemple de valeur : CGI/1.1 |
Pour une compréhension approfondie de la façon dont ces variables d’environnement sont traitées, consultez le code. Tenez compte des comportements suivants :
- Chaque variable d’environnement du tableau précédent, à l’exception
GATEWAY_INTERFACE
de celle-ci, peut également être définie en minuscules. La forme minuscule est prioritaire sur la forme majuscule. - Si les deux
http_proxy
etGATEWAY_INTERFACE
ne sont pas définis,HTTP_PROXY
sont utilisés. ALL_PROXY
est pris en compte uniquement lorsqu’un proxy HTTP ou HTTPS n’est pas défini.- Les variables d’environnement spécifiques au protocole sont prioritaires sur
ALL_PROXY
.
L’URL du serveur proxy prend la forme http[s]://[username:password@]<ip_address_or_hostname>:<port>/
, où la username:password
combinaison est facultative. Pour obtenir l’adresse IP ou le nom d’hôte, le port et les informations d’identification de votre serveur proxy, consultez votre administrateur réseau.
Les exemples suivants montrent comment définir les variables d’environnement appropriées dans les environnements d’interpréteur de commandes (Windows) et bash (Linux/macOS). La définition de la variable d’environnement appropriée entraîne l’utilisation du serveur proxy au moment de l’exécution du Kit de développement logiciel (SDK) Azure pour les bibliothèques .NET.
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