Обратный прокси IIS не соответствует действующему API - PullRequest
0 голосов
/ 23 октября 2019

Я создаю новый общий модуль аутентификации для своего приложения. Для этого мне нужно перехватить запросы, поступающие на уровень API, направить в общую службу аутентификации и продолжить регулярный поток, только если служба аутентификации вернула успех. При вызове службы аутентификации ей передаются параметры через строку запроса, на основании которой она возвращает истину / ложь в качестве ответа.

Поток событий:

  1. Браузер вызывает http://localhost/SampleService/api/Home?param=data т. Е. Site1
  2. Правило обратного прокси-сервера на Site1 заставляет вызов перейти на Site2, что является http://localhost/ValidateAuthN
  3. Site2 проверяет значение param и возвращает ответ JSON - true или false
  4. Браузер возвращает ответ.

Я использую IIS в качестве обратного прокси-серверас модулем перезаписи URL и настроенным ARR. «Включить настройку прокси» был проверен для ARR на корневом узле в IIS. На сайте API в IIS я настроил правило перезаписи следующим образом:

<rewrite>
        <rules>
            <rule name="ReverseProxyInboundRule1" stopProcessing="true">
                <match url="(.*)" />
                <action type="Rewrite" url="http://localhost/ValidateAuthN" />
            </rule>
        </rules>
</rewrite>

Я вижу, что запрос перенаправляется в службу аутентификации со значениями строк запроса, и ответ истина / ложь, возвращенный службой аутентификации, принимается напрямую. в вызывающем приложении. Однако запрос не достигает фактического уровня API для дальнейшей обработки. Я хочу, чтобы на шаге 4 запрос возвращался к site1 с JSON-ответом true / false.

Пожалуйста, предложите, чего мне не хватает в этой конфигурации.

1 Ответ

0 голосов
/ 23 октября 2019

Может быть, вам нужно правило исключения для ответа? Ваше правило соответствия (.*) перехватывает все, так что ответ «истина / ложь» может сам перенаправляться?

...