Configuración de un proxy al usar el SDK de Azure para .NET
Si su organización requiere el uso de un servidor proxy para acceder a los recursos de Internet, se requiere alguna configuración para usar el SDK de Azure para las bibliotecas cliente de .NET. Una vez configurado, el proxy se aplica a la instancia subyacente HttpClient
que se usa para las operaciones HTTP.
El proxy se puede configurar mediante código o a través de una variable de entorno. El enfoque que elija depende del comportamiento deseado. Establezca la variable de entorno adecuada si desea que el proxy se aplique globalmente a todos los clientes de servicio creados en el proceso actual. Como alternativa, configure el proxy mediante código para aplicar de forma selectiva la configuración a los clientes de servicio.
Importante
Las instrucciones siguientes solo se aplican a las bibliotecas con una dependencia de Azure.Core.
Configuración mediante código
Para configurar mediante programación un proxy, complete los pasos siguientes:
- Cree un HttpClientHandler objeto cuya
Proxy
propiedad esté establecida. - Cree un objeto de opciones de cliente de servicio cuya Transport propiedad esté establecida en un
HttpClientTransport
objeto que acepte laHttpClientHandler
instancia. - Pase el objeto de opciones de cliente de servicio al constructor de cliente de servicio.
Con la biblioteca de secretos de Azure Key Vault como ejemplo, tendría el código siguiente:
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);
Configuración mediante variables de entorno
En la tabla siguiente se proporciona un inventario de variables de entorno que se pueden establecer para configurar un proxy para su uso.
Variable del entorno | Fin |
---|---|
HTTP_PROXY o http_proxy |
Servidor proxy usado en solicitudes HTTP. |
HTTPS_PROXY o https_proxy |
El servidor proxy que se usa en las solicitudes HTTPS. |
ALL_PROXY o all_proxy |
El servidor proxy que se usa para las solicitudes HTTP y HTTPS. |
NO_PROXY o no_proxy |
Lista delimitada por comas de nombres de host que se van a excluir de la proxying. |
GATEWAY_INTERFACE |
Indicador de que la aplicación se ejecuta en un entorno de Interfaz de puerta de enlace común (CGI). Valor de ejemplo: CGI/1.1 |
Para obtener una comprensión profunda de cómo se procesan estas variables de entorno, consulte el código. Tenga en cuenta los siguientes comportamientos:
- Cada variable de entorno de la tabla anterior, excepto
GATEWAY_INTERFACE
, se puede definir como minúsculas. El formulario en minúsculas tiene prioridad sobre el formulario en mayúsculas. - Si ambos
http_proxy
yGATEWAY_INTERFACE
no están definidos,HTTP_PROXY
se usa. ALL_PROXY
solo se considera cuando un proxy HTTP o HTTPS no está definido.- Las variables de entorno específicas del protocolo tienen prioridad sobre
ALL_PROXY
.
La dirección URL del servidor proxy adopta el formato http[s]://[username:password@]<ip_address_or_hostname>:<port>/
, donde la username:password
combinación es opcional. Para obtener la dirección IP o el nombre de host, el puerto y las credenciales del servidor proxy, consulte al administrador de red.
En los ejemplos siguientes se muestra cómo establecer las variables de entorno adecuadas en entornos de shell de comandos (Windows) y bash (Linux/macOS). Establecer la variable de entorno adecuada hace que las bibliotecas de Azure SDK para .NET usen el servidor proxy en tiempo de ejecución.
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