Я создаю новый общий модуль аутентификации для своего приложения. Для этого мне нужно перехватить запросы, поступающие на уровень API, направить в общую службу аутентификации и продолжить регулярный поток, только если служба аутентификации вернула успех. При вызове службы аутентификации ей передаются параметры через строку запроса, на основании которой она возвращает истину / ложь в качестве ответа.
Поток событий:
- Браузер вызывает http://localhost/SampleService/api/Home?param=data т. Е. Site1
- Правило обратного прокси-сервера на Site1 заставляет вызов перейти на Site2, что является http://localhost/ValidateAuthN
- Site2 проверяет значение param и возвращает ответ JSON - true или false
- Браузер возвращает ответ.
Я использую 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.
Пожалуйста, предложите, чего мне не хватает в этой конфигурации.