Я реализовал поддержку SAML SSO, чтобы мое приложение выступало в качестве поставщика услуг с использованием Spring Security SAML Extension. Мне удалось интегрировать свой SP с разными IDP. Так, например, у меня есть HostA, HostB и HostC, все они имеют разные экземпляры моего приложения. У меня был файл метаданных SP, указанный для каждого хоста, и я установил AssertionConsumerServiceURL с URL-адресом этого хоста (EX:https:HostA.com/myapp/saml/sso). Я добавил каждый файл метаданных в IDP и протестировал их все, и все работает нормально.
Однако мой проект также поддерживает высокую доступность за счет настройки IBM HTTP Server для балансировки нагрузки. Таким образом, в этом случае HTTP-сервер настроит хосты (A, B, C) чтобы быть хостами, используемыми для балансировки нагрузки, пользователь будет получать доступ к моему приложению, используя URL-адрес HTTP-сервера: https:httpserver.com/myapp/
Если бы я определил один файл метаданных SP и указал URL-адрес HTTP-сервера в AssertionConsumerServiceURL( https://httpserver.com/saml/sso ) и изменил свою реализацию, чтобы принимать утверждения, нацеленные на мой HTTP-сервер, каков результат этого сценария:
- Пользователь обращается к HTTP-серверу, который отправил пользователя на HostA (за кулисами)
- Мое приложение SP в HostA отправляет запрос IDP для аутентификации.
- IDP отправляет ответ на мой https-сервер как: https://httpserver.com/saml/sso .
Будет ли HTTP-сервер перенаправлять на HostA следующим образом: https://HostA.com/saml/sso
Спасибо.