Single sign on Spring SAML-使用密钥库中的多个IDP证书而不是元数据XML 我能够将我的应用程序(SP)与Okta(IDP)集成。 我将只执行IDP发起的登录 但Okta将不是我唯一的IDP,我不想继续向我的应用程序添加新的IDP元数据XML(因为这意味着我需要编辑SpringXML文件,添加新的IDP并重新启动服务器)

Single sign on Spring SAML-使用密钥库中的多个IDP证书而不是元数据XML 我能够将我的应用程序(SP)与Okta(IDP)集成。 我将只执行IDP发起的登录 但Okta将不是我唯一的IDP,我不想继续向我的应用程序添加新的IDP元数据XML(因为这意味着我需要编辑SpringXML文件,添加新的IDP并重新启动服务器),single-sign-on,metadata,x509certificate,keystore,spring-saml,Single Sign On,Metadata,X509certificate,Keystore,Spring Saml,所以我只想将IDP X509证书(公钥)导入我的密钥库,并使用它们来验证我的SAML响应。可能吗? 或者换句话说,我想在运行时注册一个IDP,而不需要对我的应用程序进行任何更改或重新启动它。 如果是,您能否提供有关如何做到这一点的资源 目前,我已经在我的应用程序的SpringXML文件中提供了Okta的元数据XML,如下所示 <bean id="metadata" class="org.springframework.security.saml.metadata.MetadataManag

所以我只想将IDP X509证书(公钥)导入我的密钥库,并使用它们来验证我的SAML响应。可能吗? 或者换句话说,我想在运行时注册一个IDP,而不需要对我的应用程序进行任何更改或重新启动它。

如果是,您能否提供有关如何做到这一点的资源

目前,我已经在我的应用程序的SpringXML文件中提供了Okta的元数据XML,如下所示

<bean id="metadata" class="org.springframework.security.saml.metadata.MetadataManager">
    <constructor-arg>
        <list>
        <bean class="org.opensaml.saml2.metadata.provider.FilesystemMetadataProvider">
            <constructor-arg>
                <value type="java.io.File">C:\\DEV\\idp_metadata\\metadata.xml</value>
            </constructor-arg>
                <property name="parserPool" ref="parserPool" />
        </bean>
        </list>
    </constructor-arg>

</bean>

C:\\DEV\\idp\u metadata\\metadata.xml
谢谢


Abhishek

我完成了对我的应用程序的更改,使其依赖于密钥库中存在的IDP证书。 但需要注意的是,如果将来添加新的IDP证书,则需要重新启动服务器

  • 我将
    securityProfile
    更改为
    pkix
    ,而不是默认的
    metaIOP

    
    

  • 将证书添加到.jks文件中:
    keytool-importcert-file certificate.txt-keystore keystore.jks-alias“alias”

  • 实现了一个
    SAMLContextProviderLB
    并注入了
    pkixresolver

    
    

    
    

    
    

  • 实现了几个类来覆盖元数据XML的需要。
    SAMLProcessorImpl
    websoprofileconsumeripl

  • 我删除了对
    getPeerEntityID
    /
    getPeerEntityMetadata.getEntityID()
    的依赖关系,并将其替换为
    response.getIssuer().getValue()
    ,因为两者必须相同,SAML才能工作。 信任证书从密钥库中获取,密钥库在启动期间加载一次

    在下一次更新中,我将尝试找出如何执行.jks文件的定时刷新以加载新证书。

    您能解释一下吗#4-实现了几个类来覆盖元数据XML的需要。SAMLProcessorImpl和WebsProfileConsumerImpl更详细一点?