Я реализую простой балансировщик нагрузки - это прослушиватель http, который анализирует входящие запросы из браузера и направляет их в соответствующее приложение ASP.NET.Он прослушивает определенный порт (8801) и при маршрутизации сохраняет исходный URI и изменяет только номер порта, например, https://machine.domain.com:8801/testsite/Default.aspx может быть направлен на https://machine.domain.com:8811/testsite/Default.aspx
. Без маршрутизации безопасности работает нормально,Проблема возникает, когда я пытаюсь применить федерацию WIF к приложениям ASP.NET.Я использую ADFS 2.0.Вот два сценария, которые я попробовал:
сценарий 1
пассивной конечной точке WS-федерации проверяющей стороны задано значение URI приложения ASP.NET
Когда URI балансировщика нагрузки доступен через браузер, балансировщик нагрузки направляется в приложение ASP.NET, и страница загружается, однако RequestSecurityTokenResponse из STS перенаправляется непосредственно в приложение ASP.NET (не балансировщик нагрузки) в соответствии с установленной пассивной конечной точкой.Так что это работает, но так как я хочу, чтобы весь обмен данными с приложением ASP.NET обрабатывался через балансировщик нагрузки, этот сценарий не соответствует моему требованию.
сценарий 2
WS- проверяющей стороныПассивная конечная точка федерации настроена на URI балансировщика нагрузки
Когда доступ к URI балансировщика нагрузки осуществляется через браузер, балансировщик нагрузки направляется в приложение ASP.NET, которое возвращает несанкционированный ответ, браузер перенаправляет на STS, RequestSecurityTokenResponse перенаправляется обратнобалансировщик нагрузки, но при дальнейшей маршрутизации в приложение ASP.NET я получаю ответ 401 - Несанкционированный: доступ запрещен из-за неверных учетных данных.Это связано с несоответствием URI, так как токен saml выдан для URI балансировщика нагрузки.Я пробовал различные комбинации пользователей и областей аудитории, но безуспешно.
Поэтому мой вопрос заключается в том, существует ли обходной путь, позволяющий балансировщику нагрузки обрабатывать все необходимые сообщения федерации, поскольку к моим приложениям ASP.NET можно получить доступ только толькоот балансировщика нагрузки.
Надеюсь, я достаточно ясно объяснил свою проблему.
Помощь очень ценится Спасибо