Utilizar proxy

Cuando se implementa una aplicación, puede ser necesario usar un proxy. Web AppBuilder admite el uso de servidores proxy en las siguientes situaciones:

  • Al acceder a recursos de distintos dominios
  • Solicitudes que superan los 2048 caracteres
  • Al acceder a recursos protegidos mediante autenticación basada en token
  • Inicios de sesión de aplicación con OAuth 2.0.
  • Al habilitar el registro
  • Limitación de velocidad basada en recurso y en referencia

De manera predeterminada, la aplicación descargada utiliza el proxy proporcionado por ArcGIS Enterprise. Especifique su propio proxy y reglas modificando la propiedad httpProxy del archivo de configuración de la aplicación. La propiedad httpProxy contiene los siguientes atributos:

AtributoDescripción

useProxy

Booleano. Opcional. Valor predeterminado: true. Si es false, las solicitudes no usarán un proxy.

url

Cadena de caracteres. Opcional. Dirección URL para especificar la ubicación del proxy. Si la solicitud no coincide con ninguna regla de proxy, pero debe usar uno, como sucede con las solicitudes entre dominios, se usará este proxy.

alwaysUseProxy

Booleano. Opcional. Especifica si el proxy se debe usar siempre para la comunicación con un extremo REST. Valor predeterminado: false. Si la solicitud no coincide con ninguna regla de proxy y no necesita uno, la aplicación comprueba esta propiedad para determinar cómo se debe usar el proxy. Si es false, la solicitud no pasa por el proxy al que se hace referencia en la url. Si es true, la solicitud pasa por el proxy al que se hace referencia en la url.

reglas

Objeto[]. Opcional. Define el proxy para un conjunto de recursos con el mismo prefijo de dirección URL. Si la dirección URL de la solicitud coincide con una regla, la solicitud se envía a través del proxy. Cada regla tiene dos propiedades:

  • urlPrefix: cadena de caracteres: dirección URL para los recursos a los que se debe acceder a través del proxy especificado.
  • proxyUrl: cadena de caracteres: dirección URL del proxy.

Precaución:

Cuando useProxy es false y la solicitud es superior a los 2.048 caracteres, se envía una solicitud POST en lugar de GET. Además, si el servicio admite CORS, la solicitud POST se puede enviar directamente al servicio de forma correcta. Si no es así, la solicitud POST fallará. Cuando useProxy es true y se envía una solicitud POST, si el servicio no admite CORS, el proxy enviará la solicitud POST automáticamente.

En la siguiente sección se muestra cómo funcionan los proxy en relación con los atributos anteriores:

  • La aplicación comprueba useProxy.
    • Si es false, las solicitudes no usarán un proxy.
    • Si es true, la aplicación comprueba rules.
      • Si la solicitud coincide con las reglas del proxy, la aplicación utilizará el valor de proxyUrl definido en las reglas.
      • Si la solicitud no coincide con ninguna regla de proxy, pero debe usar uno, como sucede con las solicitudes entre dominios, la aplicación usará el proxy al que se hace referencia en la url.
      • Si la solicitud no coincide con las reglas de proxy y no requiere uno, la aplicación comprobará alwaysUseProxy.
        • Si es false, la solicitud no pasa por el proxy al que se hace referencia en la url.
        • Si es true, la solicitud pasa por el proxy al que se hace referencia en la url.
Diagrama de proxy

Ejemplo:

"httpProxy": {
		"useProxy": true,
		"url": "http://gallery.chn.esri.com/arcgis/sharing/proxy",
		"alwaysUseProxy": false,
		"rules": [{
			"urlPrefix": "http://route.arcgis.com/",
			"proxyUrl": "resource-proxy-1.0/DotNet/proxy.ashx"
		}]
	}