我想处理Spring Security SAML。为此,我开始探索SpringSecuritySAML。一开始,我在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?
按照快速启动一章中的步骤操作。需要注意的一些差异:
- 在注册http://www.ssocircle.com/.您需要验证您的电子邮件地址
-
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>
- 在本地构建并启动web服务器。然后在下载元数据http://localhost:8080/spring-security-saml2-sample/saml/metadata。将内容复制到剪贴板
- 在上更新新配置文件的元数据https://idp.ssocircle.com/sso/hos/ManageSPMetadata.jsp.
- 将服务的FQDN输入为"urn:test:YourName:YourCity"。您需要为"您的姓名"one_answers"您的城市"输入唯一值。粘贴上面的元数据
- 要测试:
- 注销SSO Circle服务
- 转到http://localhost:8080/spring-安全saml2-sample
- 您应该重定向到SSO Circle登录
- 使用您的SSO Circle凭据登录
- 您应该重定向到本地服务提供商页面并进行身份验证
元数据生成器过滤器为应用程序(服务提供商)生成元数据。您提供的实体id(http://idp.ssocircle.com)已经被SSO Circle使用,您应该创建一个描述您的应用程序的唯一值,例如urn:test:helsinki:myapp
就像手册上说的:
请确保将entityId值替换为唯一的字符串在SSO Circle服务内(例如urn:test:yourname:yourcity)