Proxy inverso

Se recomienda colocar tanto el sitio FoxIDs como el sitio FoxIDs Control detrás de un proxy inverso.

Proxies inversos

FoxIDs generalmente admite todos los proxies inversos; se han probado los siguientes.

Azure Front Door

Azure Front Door puede configurarse como proxy inverso. Azure Front Door reescribe los dominios por defecto.

NO habilites el caché. El encabezado Accept-Language no se reenvía si el caché está habilitado. El encabezado es requerido por FoxIDs para admitir culturas.

Agrega un endpoint de Azure Front Door para el sitio FoxIDs y el sitio FoxIDs Control. Restringe el acceso requiriendo el encabezado HTTP X-FoxIDs-Secret. Deshabilita la afinidad de sesión y configura opcionalmente políticas WAF.

Cloudflare

Cloudflare puede configurarse como proxy inverso. Pero Cloudflare requiere un plan Enterprise para reescribir dominios (encabezados host). Restringe el acceso requiriendo el encabezado HTTP X-FoxIDs-Secret.

Azure Application Gateway

Azure Application Gateway puede reescribir todos los dominios si está configurado. El encabezado HTTP X-FoxIDs-Secret puede agregarse para restringir el acceso (recomendado según la infraestructura).

Opcionalmente configura una regla de reescritura para requerir un secreto y enviar un secreto en un encabezado HTTP X-FoxIDs-Secret. Puedes requerir un encabezado X-FoxIDs-Secret si tienes un proxy inverso delante de Azure Application Gateway. Si se requiere un secreto, agrega una sonda de salud HTTPS personalizada con el parámetro de consulta X-FoxIDs-Secret /?x-foxids-secret=xxx y el secreto.

IIS ARR Proxy

Internet Information Services (IIS) Application Request Routing (ARR) Proxy requiere un servidor Windows. ARR Proxy reescribe dominios con una regla de reescritura. El encabezado HTTP X-FoxIDs-Secret puede agregarse para restringir el acceso (recomendado según la infraestructura).

Se puede configurar una regla global que acepte todos los dominios externos. Este ejemplo es una regla global; las reglas también pueden agregarse a sitios web. Opcionalmente puedes requerir (secret1) y enviar (secret2) en un encabezado HTTP X-FoxIDs-Secret. Puedes requerir un encabezado X-FoxIDs-Secret si tienes un proxy inverso delante del proxy ARR.

<globalRules>
    <rule name="my-rule-name" patternSyntax="Wildcard" stopProcessing="true">
        <match url="*" />
        <conditions>
            <add input="{HTTP_X-FoxIDs-Secret}" pattern="... secret1 ..." ignoreCase="false" />
        </conditions>
        <action type="Rewrite" url="https://my-foxids-installation.com/{R:1}" />
        <serverVariables>
            <set name="HTTP_X-ORIGINAL-HOST" value="{HTTP_HOST}" />
            <set name="HTTP_X-FoxIDs-Secret" value="... secret2 ..." />
        </serverVariables>
    </rule>
</globalRules>

Leer encabezados HTTP

El sitio FoxIDs admite leer la dirección IP del cliente reenviada en los siguientes encabezados HTTP, en orden de prioridad:

  1. CF-Connecting-IP
  2. X-Azure-ClientIP
  3. X-Forwarded-For

El sitio FoxIDs admite leer el dominio personalizado (nombre de host) desde el proxy inverso en los siguientes encabezados HTTP, en orden de prioridad:

  1. X-ORIGINAL-HOST
  2. X-Forwarded-Host

El encabezado host solo se lee si el acceso está restringido por el encabezado HTTP X-FoxIDs-Secret o si el ajuste Settings__TrustProxyHeaders está configurado como true.

El sitio FoxIDs y el sitio FoxIDs Control admiten leer el esquema HTTP/HTTPS si el ajuste Settings__TrustProxySchemeHeader está configurado como true. En los siguientes encabezados HTTP, en orden de prioridad:

  1. X-Forwarded-Scheme
  2. X-Forwarded-Proto

Restringir acceso

Tanto el sitio FoxIDs como el sitio FoxIDs Control pueden restringir el acceso según el encabezado HTTP X-FoxIDs-Secret. La restricción de acceso se activa agregando el ajuste Settings__ProxySecret con el secreto.