Управление API-интерфейсом Azure - как получить исходный IP-адрес, когда APM отстает от WAF - PullRequest
0 голосов
/ 14 июня 2019

У нас ниже технического стека

  • Imperva WAF
  • API Management
  • WebApi в WebApp

Это текущая реализация

  • IP-адреса клиентов аутентифицируются на уровне WAF
  • IP-адреса WAF заносятся в белый список на уровне APIM
  • IP-адрес APIM заносится в белый список на уровне WebApp

Всеработает нормально и, как и ожидалось.

Теперь, когда я зашел в APIM -> Analytics -> Request, я вижу, что здесь перечислены IP-адреса WAF, а не клиентские.Так что в этом случае мы не сможем отследить, кто что использует

Я знаю, что у нас есть возможность отследить ключ подписки, но этого недостаточно.

Может кто-нибудь подсказать, пожалуйста, какнастроить для получения правильных IP-адресов?

enter image description here

Ответы [ 2 ]

2 голосов
/ 16 июня 2019

Полагаю, вы можете найти ответ в здесь . Вам просто нужно настроить сервер для получения правильного IP-адреса из соответствующего заголовка.

Цитирование соответствующей части:

Требуется оригинальный IP-адрес клиента. Если вашему приложению требуется реальный IP-адрес клиента, убедитесь, что вы включили получение этого значения из заголовка «X-Forwarded-For» или «Incap-Client-IP». При работе с Imperva ваш сервер будет видеть IP-адреса Imperva вместо реальных клиентских IP-адресов. Однако Imperva по умолчанию вставляет исходный IP-адрес клиента в два заголовка HTTP: «X-Forwarded-For» и заголовок Imperva «Incap-Client-IP».

Но обратите внимание, вы должны взять первый IP в данном значении XFF, иначе использование второго заголовка real-client-IP может зависеть от прокси сторонних производителей и т. Д.

Надеюсь, это поможет.

0 голосов
/ 15 июня 2019

Это невозможно со встроенными отчетами в Azure APIM.Если вы можете сделать так, чтобы WAF перенаправлял IP-адрес клиента в APIM в заголовке, вы могли бы создать собственную инфраструктуру отчетности, но это было бы довольно сложно.

...