【问题标题】:How to configuration of IDP metadata and SP metadata in Spring Security SAML sample?如何在 Spring Security SAML 示例中配置 IDP 元数据和 SP 元数据?
【发布时间】:2015-04-09 10:09:36
【问题描述】:

我想处理 Spring Security SAML。为此,我开始探索Spring Security SAML。一开始,我在SSOCircle 创建了一个帐户。比我配置 IDP 元数据和生成 SP 元数据(4.2.2 和 4.2.3)。在entityId我设置:

 <bean id="metadataGeneratorFilter" class="org.springframework.security.saml.metadata.MetadataGeneratorFilter">
    <constructor-arg>
        <bean class="org.springframework.security.saml.metadata.MetadataGenerator">
            <property name="entityId" value="http://idp.ssocircle.com"/>
        </bean>
    </constructor-arg>
 </bean>

当我开始申请时,我有:

Error occurred:
Reason: Unable to do Single Sign On or Federation.

Error occurred:
Reason: Unable to get AuthnRequest.

如何配置 Spring Security SAML?

【问题讨论】:

  • 嗨,我不了解你。但要与您澄清的一件事是关于 SAML 与 Spring Security 的集成。您是否进行过 SAML 集成?因为我坚持了 5 天。我有两个门户网站,我想将它们集成到 SAML,即单点登录。我正在使用弹簧 mvc 。我想用 spring security 获得 saml 。你能告诉我这件事吗?提前致谢
  • @Mehbub,不幸的是,我没有好消息。我也不懂 Spring Security SAML。
  • ops :(如果你有任何信息请告诉我

标签: java spring spring-security spring-saml opensaml


【解决方案1】:

按照QuickStart 章节中的步骤操作。需要注意的一些差异:

  1. 注册http://www.ssocircle.com/。您需要验证您的电子邮件地址。
  2. sample/src/main/webapp/WEB-INF/securityContext.xml 的 metadataGeneratorFilter 部分应如下所示(注意: signMetadata 属性已被注释掉):

    <bean id="metadataGeneratorFilter" class="org.springframework.security.saml.metadata.MetadataGeneratorFilter">
    <constructor-arg>
        <bean class="org.springframework.security.saml.metadata.MetadataGenerator">
          <property name="entityId" value="urn:test:YourName:YourCity"/>
      <!--<property name="signMetadata" value="false"/>-->
        </bean>
    </constructor-arg>
    

  3. 在本地构建和启动 Web 服务器。然后在http://localhost:8080/spring-security-saml2-sample/saml/metadata 下载元数据。将内容复制到剪贴板。
  4. https://idp.ssocircle.com/sso/hos/ManageSPMetadata.jsp 更新您的新个人资料的元数据。
  5. 将服务的 FQDN 输入为“urn:test:YourName:YourCity”。您需要为您的姓名和您的城市输入唯一值。从上方粘贴元数据。
  6. 测试:
    1. 退出单点登录圈服务。
    2. 转到http://localhost:8080/spring-security-saml2-sample
    3. 您应该被重定向到 SSO Circle 登录。
    4. 使用您的 SSO Circle 凭据登录。
    5. 您应该被重定向到您的本地服务提供商页面并进行身份验证。

【讨论】:

  • 谢谢哥们。我不知道我刚刚做了什么,但它至少似乎有效,与其他 SAML“解决方案”相比,这是一个进步。
  • 我不明白用什么来代替它? "urn:test:YourName:YourCity"
【解决方案2】:

元数据生成器过滤器为您的应用程序(服务提供商)生成元数据。您提供的实体 ID (http://idp.ssocircle.com) 已被 SSO 圈使用,您应该创建一个描述您的应用程序的唯一值,例如瓮:测试:赫尔辛基:myapp

就像说明书上说的:

确保将 entityId 值替换为唯一的字符串 在 SSO Circle 服务中(例如 urn:test:yourname:yourcity)

【讨论】:

  • 好的。例如,我将entityId 更改为urn:test:helsinki:myapp。但是现在,当我启动应用程序时,出现错误Reason: The SAML Request is invalid.。可能是这个entityId 我应该粘贴到ssocircle.com/en 的某个字段?
  • 在执行 entityID 更改后,您是否已将应用程序的元数据导出到 SSO Circle?请按照手册中的说明逐步操作。
  • 我按照以下步骤操作: 1. 更改metadata bean 2. 更改metadataGeneratorFilter 并将entytiId 设置为urn:test:helsinki:myapp 3. 启动应用程序。但每次我有错误:Reason: The SAML Request is invalid.。因此,我无法获取元数据信息。
  • 所以你在部署过程中遇到错误?或者当你打开应用程序 URL 时?或者当您单击登录链接时?请附上您的 Spring 配置 XML。
  • @VladimírSchäfer,我已经阅读了有关元数据和 metadataGeneratorFilter bean 更改的文档,但是能够构建 saml-spring 示例,将其部署到 Tomcat 8 并且开箱即用我没有配置更改。当然,我确实在 ssocircle.com 上创建了一个帐户,但除此之外它还有效。示例应用程序是否进行了更改以允许这样做,并且文档是否仍与示例应用程序的当前版本同步?谢谢
猜你喜欢
  • 2016-01-26
  • 2015-03-27
  • 2020-10-15
  • 1970-01-01
  • 2014-10-28
  • 2016-06-03
  • 2023-04-08
  • 2014-11-10
  • 2015-02-03
相关资源
最近更新 更多