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

som*_*ody 4 java spring spring-security opensaml spring-saml

我想处理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>
Run Code Online (Sandbox Code Playgroud)

当我开始申请时,我有:

Error occurred:
Reason: Unable to do Single Sign On or Federation.
Run Code Online (Sandbox Code Playgroud)

要么

Error occurred:
Reason: Unable to get AuthnRequest.
Run Code Online (Sandbox Code Playgroud)

如何配置Spring Security SAML?

Ron*_*nOD 16

按照快速入门章节中的步骤操作.需要注意的一些差异:

  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>
    
    Run Code Online (Sandbox Code Playgroud)

  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. 您应该被重定向到本地服务提供商页面并进行身份验证.