Reverse proxy
Si raccomanda di posizionare sia il sito FoxIDs sia il sito FoxIDs Control dietro un reverse proxy.
Reverse proxies
FoxIDs supporta in generale tutti i reverse proxy; i seguenti reverse proxy sono stati testati.
Azure Front Door
Azure Front Door puo essere configurato come reverse proxy. Azure Front Door riscrive i domini per impostazione predefinita.
NON abilitare la cache. L'header
Accept-Languagenon viene inoltrato se la cache e abilitata. L'header e richiesto da FoxIDs per supportare le culture.
Aggiungi un endpoint Azure Front Door sia per il sito FoxIDs sia per il sito FoxIDs Control. Limita l'accesso richiedendo l'header HTTP X-FoxIDs-Secret.
Disabilita Session affinity e configura facoltativamente policy WAF.
Cloudflare
Cloudflare puo essere configurato come reverse proxy. Tuttavia, Cloudflare richiede un piano Enterprise per riscrivere i domini (host headers). Limita l'accesso richiedendo l'header HTTP X-FoxIDs-Secret.
Azure Application Gateway
Azure Application Gateway puo riscrivere tutti i domini se configurato.
L'header HTTP X-FoxIDs-Secret puo essere facoltativamente aggiunto per limitare l'accesso (consigliato a seconda dell'infrastruttura).
Facoltativamente configura una regola di riscrittura per richiedere sia l'invio di un secret nell'header HTTP X-FoxIDs-Secret. Potresti richiedere un header HTTP X-FoxIDs-Secret se hai un reverse proxy davanti ad Azure Application Gateway.
Se richiedi un secret, aggiungi una custom HTTPS health probe con il parametro query X-FoxIDs-Secret /?x-foxids-secret=xxx e il secret.
IIS ARR Proxy
Internet Information Services (IIS) Application Request Routing (ARR) Proxy richiede un server Windows. ARR Proxy riscrive i domini con una regola di rewrite.
L'header HTTP X-FoxIDs-Secret puo essere facoltativamente aggiunto per limitare l'accesso (consigliato a seconda dell'infrastruttura).
Puo essere configurata una regola che accetta tutti i domini esterni. Questo esempio e una regola globale; le regole possono anche essere aggiunte ai siti web.
Facoltativamente sia la richiesta (secret1) sia l'invio (secret2) possono essere impostati nell'header HTTP X-FoxIDs-Secret. Potresti richiedere un header HTTP X-FoxIDs-Secret se hai un reverse proxy davanti ad ARR Proxy.
<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>
Leggere header HTTP
Il sito FoxIDs supporta la lettura dell'indirizzo IP del client inoltrato nei seguenti header HTTP in ordine di priorita:
CF-Connecting-IPX-Azure-ClientIPX-Forwarded-For
Il sito FoxIDs supporta la lettura del dominio personalizzato (nome host) dal reverse proxy nei seguenti header HTTP in ordine di priorita:
X-ORIGINAL-HOSTX-Forwarded-Host
L'header host viene letto solo se l'accesso e limitato tramite l'header HTTP
X-FoxIDs-Secretoppure se l'impostazioneSettings__TrustProxyHeaderse impostata sutrue.
Il sito FoxIDs e il sito FoxIDs Control supportano la lettura dello schema HTTP/HTTPS se l'impostazione Settings__TrustProxySchemeHeader e impostata su true. Nei seguenti header HTTP in ordine di priorita:
X-Forwarded-SchemeX-Forwarded-Proto
Limitare l'accesso
Sia il sito FoxIDs sia i siti FoxIDs Control possono limitare l'accesso in base all'header HTTP X-FoxIDs-Secret.
La limitazione di accesso viene attivata aggiungendo l'impostazione Settings__ProxySecret con il secret.