使用PingFederate为SSO配置Spring SAML

hyp*_*ite 4 saml single-sign-on pingfederate saml-2.0 spring-saml

我们决定使用Ping Federate作为我们的SSO解决方案.我搜索过很多例子,但是没有找到一个弹簧配置,清楚地描述了我需要在PingFederate端设置我的SP和/或IdP.我还没有找到一个Spring文档来描述我需要什么来实现它.

任何帮助,非常感谢.

Vla*_*fer 5

目前没有关于在Spring SAML和Ping之间建立联合的分步指南,但这些步骤与Spring SAML 的快速入门指南中描述的步骤非常相似.

最好的方法是从Spring SAML中包含的示例应用程序开始,将其配置为与Ping一起使用,然后将配置传输到当前的Spring应用程序.

高级步骤是:

  • 部署Spring SAML示例应用程序
  • 从中https://server:port/context/saml/metadata打开SP元数据(只需打开浏览器到URL并存储它返回的所有内容)
  • 通过创建新的"SP连接"来配置Ping,作为导入先前存储的元数据的过程的一部分,首先,您可以在大多数设置上使用默认值
  • 完成后,使用管理功能 - >元数据导出为您在上一步中创建的连接导出IDP元数据
  • 将IDP元数据导入Spring SAML(示例在手册中)

这将建立两者之间的联合,使您能够通过Ping开始对用户进行身份验证.

在您的情况下,元数据配置(bean元数据)应如下所示:

<bean id="metadata" class="org.springframework.security.saml.metadata.CachingMetadataManager">
    <constructor-arg>
        <list>
            <bean class="org.springframework.security.saml.metadata.ExtendedMetadataDelegate">
                <constructor-arg>
                    <bean class="org.opensaml.saml2.metadata.provider.FilesystemMetadataProvider">
                        <constructor-arg>
                            <value type="java.io.File">classpath:security/idp.xml</value>
                        </constructor-arg>
                        <property name="parserPool" ref="parserPool"/>
                    </bean>
                </constructor-arg>
                <constructor-arg>
                    <bean class="org.springframework.security.saml.metadata.ExtendedMetadata"/>
                </constructor-arg>
                <property name="metadataTrustCheck" value="false"/>
            </bean>
        </list>
    </constructor-arg>
</bean>
Run Code Online (Sandbox Code Playgroud)

确保使用PF中的元数据替换resources/security/idp.xml.您可以删除所有未使用的ExtendedMetadata bean实例(例如SSO Circle的实例).元数据bean可以包含多个"链接"的原因是它可以同时支持许多IDP.