Azure Application Gateway et Api Management : conserver l'adresse IP du client
Conserver l'adresse IP du client lors de l'utilisation d'API management et Application Gateway
Banner Image
Lors de l'utilisation d'un Front avec Azure Api Management, l'adresse IP renvoyée est celle du front, et non celle du client. Avec la mise en place d'une Application Gateway, c'est l'IP (v6) de l'app gateway qui est transmise à l'API Management.
Quel est le problème ? Un problème se pose si l'on souhaite faire de la restriction d'IP au niveau de l'API management.
Solution :
Application Gateway
Propager l'IP du client de l'APP Gateway vers l'API Management à l'aide d'une redirection.
Ajouter cette règle dans Rewrites / Rewrite rule :
Attention au nommage de la variable "var_client_ip"
Api Management
Modifier la règle de filtrage ip-filter par une règle check-header :
<set-header name="X-Forwarded-For" exists-action="override">
<value>@{
string xForward = context.Request.Headers.GetValueOrDefault("X-Forwarded-For");
return xForward.Contains(",") ? xForward.Split(',')[0] : xForward;
}</value>
</set-header>
<check-header name="x-forwarded-for" failed-check-httpcode="403" failed-check-error-message="Unauthorized" ignore-case="true">
<value>ipX</value>
<value>ipY</value>
</check-header>