В соответствии с эти документы, IIS должен разрешать ограничение IP-адресов на основе адреса x-forwarded-for, видимого IIS, если он находится за прокси-сервером, если enableProxyMode установлено значение true. Я отредактировал настройки функции, чтобы включить режим прокси, и добавил запись «разрешить» для IP-адреса нашего прокси.
Моя проблема в том, что я все еще получаю отказ с 403 запрещенным при попытке подключения. Стоит отметить, что я настраиваю это только для одного из приложений определенного веб-сайта. Версия IIS - 8.0.x Протестировано после полного сброса IIS и проверки applicationHost.config:
<location path="mysite.com/myapp">
<system.webServer>
<security>
<ipSecurity allowUnlisted="false" enableProxyMode="true">
<add ipAddress="my proxy ip..." allowed="true" />
</ipSecurity>
</security>
</system.webServer>
</location>
И ваш IP, и ваш IP-адрес x-forwarded-for должны иметь разрешенные записи, чтобы запрос был разрешен.
При включенном режиме прокси сервер сначала проверяет, разрешен ли представленный IP (ip прокси). Если это так, он затем получает последний ip-адрес x-forwarded-for и проверяет, разрешено ли THAT, и рекурсивно просматривает список IP-адресов x-forwarded-for и проверяет каждый на предмет разрешения. Все должно быть разрешено, иначе запрос будет заблокирован.
Если IP-адрес прокси НЕ разрешен, запрос блокируется, а s-forwarded-for вообще не рассматривается; вы должны доверять источнику запроса, чтобы попытаться доверять тому, что находится В запросе.
Это объясняется в более длинной форме (и лучшей терминологии) здесь: https://blogs.iis.net/wadeh/dynamic-ip-restriction-proxy-mode