使用SpringSAML-SP元数据与IDP元数据进行ADFS集成?

使用SpringSAML-SP元数据与IDP元数据进行ADFS集成?,spring,spring-security,metadata,adfs,spring-saml,Spring,Spring Security,Metadata,Adfs,Spring Saml,我使用SSOCycle实现了Spring SAML示例应用程序,它运行良好。现在我一直在尝试为客户机的ADF实现它。以下是我认为需要的配置,如果我错了,请纠正我: 将下面的第一个参数更改为客户端提供的federationMetadata.xml url http://idp.ssocircle.com/idp-meta.xml 5000 替换以下SP元数据的实体id: 我还没有弄明白以下几点: 我收到的只是adfs/./federationMetadata.xml的url,谁应该创建S

我使用SSOCycle实现了Spring SAML示例应用程序,它运行良好。现在我一直在尝试为客户机的ADF实现它。以下是我认为需要的配置,如果我错了,请纠正我:

  • 将下面的第一个参数更改为客户端提供的federationMetadata.xml url
  • 
    http://idp.ssocircle.com/idp-meta.xml
    5000
    
  • 替换以下SP元数据的实体id:
  • 
    
    我还没有弄明白以下几点:

    • 我收到的只是adfs/./federationMetadata.xml的url,谁应该创建SP元数据
    • 我是否应该创建SP元数据并提供给客户端,以便将其添加到adfs中?因为,这就是我使用示例应用程序所做的。我将生成的元数据添加到SSOCycle中
    • 我的理解是,第1点是adfs url,第2点是SP实体id,对吗
    如果您能向我澄清以上内容,我将不胜感激。如果可能的话,请为我提供一个简单的教程,帮助我将SAML与支持Spring安全性的应用程序集成,因为我还没有找到相同的教程

    非常感谢

    要使SP和IdP(ADF)之间的SAML正常工作,您必须相互交换元数据

    ADFS元数据位于URL上,您可以使用
    HTTPMetadataProvider
    在SP中注册它们,或者下载它们并从类路径读取,或者使用
    ResourceBackedMetadataProvider
    从文件系统读取它们

    对于SP元数据,您必须配置
    MetadataGenerator
    (如您所问),然后通过
    FilterChainProxy
    公开它。下面是一个Java配置(相当于XML):

    @Bean
    public FilterChainProxy samlFilter()引发异常{
    列表链=新的ArrayList();
    添加(新的DefaultSecurityFilterChain(
    新的AntPathRequestMatcher(“/saml/metadata/**”),metadataDisplayFilter();
    返回新的过滤器链氧(链条);
    }
    
    然后,您可以访问URL上的SP元数据,并将其作为依赖方信任在ADFS上注册。同样,您可以通过URL或从(下载的)文件导入数据来执行此操作


    基本上,如果您遵循使用XML配置的SpringSecuritySAML,您应该不会有问题。在这种情况下,您需要切换到Java配置,您可以找到方便的参考或我的工作原型。

    您的理解是正确的。您可以将SSOCIRCE元数据提供程序保留在配置中,并为ADFS联合身份验证服务添加另一个提供程序。然后,需要将SP元数据上载到ADFS服务器。有关详细信息,请访问。谢谢@manish。所以,为了验证我的理解,我必须使用我的应用程序创建元数据,并且必须与客户端共享元数据,因为它需要上传到adfs服务器中。对吗?那么这个元数据生成部分会一直存在于我的应用程序中吗?或者,在创建元数据并与客户端共享元数据后,我可以删除该MetadataGeneratorbean吗?我还将阅读您共享的链接。谢谢,所以不必将SSOCELL提供程序保留在配置中,对吗?如果我删除了它,那么它也应该可以工作?是的,一旦你让一切都与ADF完美配合,你就可以删除SSOCircle配置。您的应用程序将是SAML使用者(确切地说是SAML服务提供者),它将始终具有自己的元数据。示例中提供的元数据bean仅用于提取特定于应用程序的元数据,以便与其他SAML参与者(如IP和SP)共享。因此,是的,一旦一切正常,您就不再需要配置中的元数据生成bean了。非常感谢。如果你能把它写在答案里,我可以把它标为答案