SAML断言失败

时间:2018-05-30 22:14:07

标签: spring-security saml-2.0 spring-saml okta spring-security-saml2

我有一个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与具有服务器IP地址的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 个答案:

答案 0 :(得分:0)

好的神秘解决了:

Per Spring-SAML文档,当您处于反向代理/负载均衡器设置时,您必须确保指定

<property name="entityBaseURL" value="https://www.myserver.com/spring-security-saml2-sample"/>

参见SPRING-SAML documentation 10.1反向代理和负载均衡器