Утверждение SAML не выполняется
У меня есть приложение Spring-SAML с Okta в качестве IDP. Я делаю инициированный IDP поток и получаю это исключение:
org.opensaml.common.SAMLException: Endpoint with message binding urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST and URL https://<myCompanyUrl>.com/saml/SSO wasn't found in local metadata
Когда я смотрю на свои локальные метаданные, я вижу:
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="https://<server IP address> :<server port>/saml/SSO" index="0" isDefault="true"/>
Похоже, он пытается сопоставить URL-адрес, содержащий имя хоста, с URL-адресом сервера. Поле местоположения генерируется автоматически. Кто-нибудь знает, какой параметр конфигурации влияет на это?
ОБНОВЛЕНИЕ 1
вот моя конфигурация metadataGeneratorFilter:
<bean id="metadataGeneratorFilter" class="org.springframework.security.saml.metadata.MetadataGeneratorFilter">
<constructor-arg>
<bean class="org.springframework.security.saml.metadata.MetadataGenerator">
<property name="entityId" value="https://myHostname/myApp"/>
</bean>
</constructor-arg>
</bean>
1 ответ
Решение
Все правильно, загадка решена:
Согласно документации Spring-SAML, когда вы находитесь в настройке обратного прокси-сервера / балансировки нагрузки, вы должны обязательно указать
<property name="entityBaseURL" value="https://www.myserver.com/spring-security-saml2-sample"/>
См. Документацию SPRING-SAML10.1. Обратные прокси и балансировщики нагрузки.