![](/img/trans.png)
[英]ConcurrentSessionControlStrategy in spring security 3.2.4
[英]Spring Security SAML extension on Spring framework 4.0 and Spring security 3.2.4
我想在基於Spring的應用程序中使用注釋配置。 出於SSO目的,還需要SAML2.0消化和生成。
Spring 4.0和Spring Security 3.2.4僅支持注釋配置
是否可以集成Spring Security SAML 1.0?
更新:VladimírSchäfer提供的示例項目確實很有幫助。
但是,在sso登錄之后,該頁面已被重定向到服務提供商應用程序上的身份驗證失敗URL。
SAML響應如下:
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
Destination="http://myIP:8080/websso/saml/SSO"
ID="s237fe42260c297d9dfd7845b3691ef76e0bc27c76"
InResponseTo="a14hc23eda9j396g2h5aff4076216g5"
IssueInstant="2014-08-28T07:36:07Z"
Version="2.0"
>
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">http://idp.ssocircle.com</saml:Issuer>
<samlp:Status xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
/>
</samlp:Status>
<saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="s2e84d407027285a27d32a70c93ebdc70298956c8d"
IssueInstant="2014-08-28T07:36:07Z"
Version="2.0"
>
<saml:Issuer>http://idp.ssocircle.com</saml:Issuer>
<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
NameQualifier="http://idp.ssocircle.com"
>nameID</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData InResponseTo="a14hc23eda9j396g2h5aff4076216g5"
NotOnOrAfter="2014-08-28T07:46:07Z"
Recipient="http://myIP:8080/websso/saml/SSO"
/>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions NotBefore="2014-08-28T07:26:07Z"
NotOnOrAfter="2014-08-28T07:46:07Z"
>
<saml:AudienceRestriction>
<saml:Audience>entityID</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement AuthnInstant="2014-08-28T07:35:44Z"
SessionIndex="s274ab5c8a81ed49654745a6583214314f65138201"
>
<saml:AuthnContext>
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
</saml:Assertion>
</samlp:Response>
我懷疑這是由於SP所在的時區與IDP有所不同,我該如何跳過呢?
Spring SAML似乎可以與Spring 4.0和Spring Security 3.2.4一起很好地工作。 您可以使用spring-boot-security-saml-sample項目作為參考。
Spring SAML的下一版本很可能會包含對Java配置的其他支持,但是如上面的示例所示,可以使所有內容按原樣使用該項目。
看看這個答案 :它基本上描述了我最近發布的一個插件,它允許您以這種方式配置Spring Boot和Spring Security SAML:
@SpringBootApplication
@EnableSAMLSSO
public class SpringBootSecuritySAMLDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootSecuritySAMLDemoApplication.class, args);
}
@Configuration
public static class MvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("index");
}
}
@Configuration
public static class MyServiceProviderConfig extends ServiceProviderConfigurerAdapter {
@Override
public void configure(ServiceProviderSecurityBuilder serviceProvider) throws Exception {
serviceProvider
.metadataGenerator()
.entityId("localhost-demo")
.and()
.sso()
.defaultSuccessURL("/home")
.idpSelectionPageURL("/idpselection")
.and()
.logout()
.defaultTargetURL("/")
.and()
.metadataManager()
.metadataLocations("classpath:/idp-ssocircle.xml")
.refreshCheckInterval(0)
.and()
.extendedMetadata()
.idpDiscoveryEnabled(true)
.and()
.keyManager()
.privateKeyDERLocation("classpath:/localhost.key.der")
.publicKeyPEMLocation("classpath:/localhost.cert");
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.