Reverse proxy
Recomenda-se colocar tanto o site do FoxIDs como o site do FoxIDs Control atrás de um reverse proxy.
Reverse proxies
O FoxIDs suporta genericamente todos os reverse proxies; os seguintes reverse proxies foram testados.
Azure Front Door
O Azure Front Door pode ser configurado como reverse proxy. O Azure Front Door reescreve domínios por predefinição.
NÃO ative caching. O header
Accept-Languagenão é encaminhado se o caching estiver ativado. O header é necessário para o FoxIDs suportar cultures.
Adicione um endpoint Azure Front Door tanto para o site do FoxIDs como para o site do FoxIDs Control. Restrinja o acesso exigindo o header HTTP X-FoxIDs-Secret.
Desative Session affinity e configure opcionalmente políticas WAF.
Cloudflare
O Cloudflare pode ser configurado como reverse proxy. No entanto, o Cloudflare requer um plano Enterprise para reescrever domínios (host headers). Restrinja o acesso exigindo o header HTTP X-FoxIDs-Secret.
Azure Application Gateway
O Azure Application Gateway pode reescrever todos os domínios se estiver configurado para isso.
O header HTTP X-FoxIDs-Secret pode opcionalmente ser adicionado para restringir o acesso (recomendado dependendo da infraestrutura).
Opcionalmente configure uma regra de rewrite para exigir um secret e enviar um secret num header HTTP X-FoxIDs-Secret. Pode exigir um header HTTP X-FoxIDs-Secret se tiver um reverse proxy à frente do Azure Application Gateway.
Se exigir um secret, adicione uma custom HTTPS health probe com o parâmetro query X-FoxIDs-Secret /?x-foxids-secret=xxx e o secret.
IIS ARR Proxy
O Internet Information Services (IIS) Application Request Routing (ARR) Proxy requer um servidor Windows. O ARR Proxy reescreve domínios com uma regra de rewrite.
O header HTTP X-FoxIDs-Secret pode opcionalmente ser adicionado para restringir o acesso (recomendado dependendo da infraestrutura).
Pode ser configurada uma regra que aceite todos os domínios externos. Este exemplo é uma regra global; as regras também podem ser adicionadas a websites.
Opcionalmente pode tanto exigir (secret1) como enviar (secret2) num header HTTP X-FoxIDs-Secret. Pode exigir um header HTTP X-FoxIDs-Secret se tiver um reverse proxy à frente do 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>
Ler headers HTTP
O site do FoxIDs suporta ler o endereço IP encaminhado do cliente nos seguintes headers HTTP por ordem de prioridade:
CF-Connecting-IPX-Azure-ClientIPX-Forwarded-For
O site do FoxIDs suporta ler o domínio personalizado (nome do host) do reverse proxy nos seguintes headers HTTP por ordem de prioridade:
X-ORIGINAL-HOSTX-Forwarded-Host
O header host só é lido se o acesso estiver restringido pelo header HTTP
X-FoxIDs-Secretou se a definiçãoSettings__TrustProxyHeadersestiver definida comotrue.
O site do FoxIDs e o site do FoxIDs Control suportam ler o esquema HTTP/HTTPS se a definição Settings__TrustProxySchemeHeader estiver definida como true. Nos seguintes headers HTTP por ordem de prioridade:
X-Forwarded-SchemeX-Forwarded-Proto
Restringir acesso
Tanto o site do FoxIDs como os sites FoxIDs Control podem restringir acesso com base no header HTTP X-FoxIDs-Secret.
A restrição de acesso é ativada ao adicionar a definição Settings__ProxySecret com o secret.