如何在Spring Security SAML示例中配置IDP元数据和SP元数据?

时间:2015-02-09 15:49:53

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

我想处理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?

2 个答案:

答案 0 :(得分:14)

按照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. 退出SSO Circle服务。
    2. 转到http://localhost:8080/spring-security-saml2-sample
    3. 您应该被重定向到SSO Circle登录。
    4. 使用您的SSO Circle凭据登录。
    5. 您应该被重定向到本地服务提供商页面并进行身份验证。

答案 1 :(得分:3)

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

就像手册中说的那样:

  

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