当前位置: 首页 > 知识库问答 >
问题:

ADFS集成使用Spring SAML-SP元数据vs IDP元数据?

闻人树
2023-03-14

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

  1. 将下面的第一个参数更改为federationMetadata。客户端提供的xml url
<bean class="org.opensaml.saml2.metadata.provider.HTTPMetadataProvider">
    <constructor-arg>
        <value type="java.lang.String">http://idp.ssocircle.com/idp-meta.xml</value>
    </constructor-arg>
    <constructor-arg>
        <value type="int">5000</value>
    </constructor-arg>
    <property name="parserPool" ref="parserPool"/>
</bean>
<bean class="org.springframework.security.saml.metadata.MetadataGenerator">
    <property name="entityId" value="replaceWithUniqueIdentifier"/>
    <property name="extendedMetadata">
        <bean class="org.springframework.security.saml.metadata.ExtendedMetadata">
            <property name="signMetadata" value="false"/>
            <property name="idpDiscoveryEnabled" value="true"/>
        </bean>
    </property>
</bean>

我还没有弄明白以下几点:

  • 我只收到了adfs/的url/联邦元数据。xml,谁应该创建SP元数据
  • 我是否应该创建SP元数据并提供给客户端,以便将其添加到adfs中?因为,这就是我使用示例应用程序所做的。我将生成的元数据添加到SSOCIRCE
  • 我的理解是,第1点是adfs url,第2点是SP实体id,对吗

如果您能向我澄清以上内容,我将不胜感激。如果可能的话,请为我提供一个简单的教程,帮助我将SAML与支持Spring Security性的应用程序集成,因为我还没有找到相同的教程。

非常感谢

共有1个答案

秋煌
2023-03-14

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

ADFS元数据可在URL上找到https://adfs-host/FederationMetadata/2007-06/FederationMetadata.xml您可以使用HTTPMetadataProvider在SP中注册它们,或者下载它们并从类路径读取,或者使用ResourceBackedMetadataProvider从文件系统读取它们。

对于SP元数据,您必须配置MetadataGenerator(正如您在问题中所述),然后通过FilterChainProxy公开它。这是一个Java配置(它等效于XML):

java prettyprint-override">@Bean
public FilterChainProxy samlFilter() throws Exception {
    List<SecurityFilterChain> chains = new ArrayList<SecurityFilterChain>();

    chains.add(new DefaultSecurityFilterChain(
        new AntPathRequestMatcher("/saml/metadata/**"), metadataDisplayFilter()));

    return new FilterChainProxy(chains);
}

然后,您可以访问URL上的SP元数据https://sp-host/saml/metadata并将其注册为依赖方信托。同样,您可以通过URL执行此操作,也可以从(下载的)文件导入数据。

基本上,如果您遵循使用XML配置的Spring Security SAML参考文档,您应该不会有问题。如果您需要切换到Java配置,您可以找到参考的vdenotaris/spring boot security saml示例,或者我的工作原型sw samuraj/blog spring security。

 类似资料:
  • 我有问题,因为我正在为用EJB3编写的应用程序创建Spring Security filter。我为这个应用程序添加了Spring安全过滤器链。我从spring-security-saml2-sample.war.得到了配置,它工作正常,但我metadata.xml文件有问题,它是在加载每个页面时生成的。问题是-如何导出这个xml文件做ADFS 2.0服务器,IDP(ADFS 2.0服务器)会看到

  • SQLAlchemy 1.4 / 2.0 Tutorial 此页是 SQLAlchemy 1.4/2.0教程 . 上一页: 处理事务和DBAPI |下一步: |next| 使用数据库元数据 随着引擎和SQL执行的停止,我们准备开始一些炼金术。SQLAlchemy Core和ORM的核心元素是SQL表达式语言,它允许流畅、可组合地构造SQL查询。这些查询的基础是表示数据库概念(如表和列)的Pytho

  • Hibernate 中有一个非常丰富的元级别(meta-level)的模型,含有所有的实体和值类型数据的元数据。 有时这个模型对应用程序本身也会非常有用。比如说,应用程序可能在实现一种“智能”的深度拷贝算法时,通过使用 Hibernate 的元数据来了解哪些对象应该被拷贝(比如,可变的值类型数据),那些不应该(不可变的值类型数据,也许还有某些被关联的实体)。 Hibernate 提供了 Class

  • 在前面讲过,execute、executeQuery和executeUpdate方法都可以返回ResultSet对象。通过ResultSet接口的next方法可以对数据进行扫描,但要获得ResultSet对象的元数据(列数、列名、字段类型等),就需要使用ResultSet接口的getMetaData方法,getMetaData方法的定义如下: ResultSetMetaData getMetaDa

  • 我想处理Spring Security SAML。为此,我开始探索Spring Security SAML。开始时,我在SSOCircle创建了一个帐户。然后我配置了IDP元数据和SP元数据的生成(4.2.2和4.2.3)。在我设置: 当我开始申请时,我有: 或者 如何配置Spring Security SAML?

  • 使用元数据 (metadata) 来给你的代码提供额外的信息。一个元数据注解以字符 @ 开头,后面跟着的要么是编译期常量(比如 deprecated),要么是常量构造函数的调用。 有两个注解可应用于所有的 Dart 代码:@deprecated 和 @override。使用 @override 的例子,请参阅 继承类。下面是一个使用 @deprecated 注解的例子: class Televis