2014-09-03 64 views
2

我正在尋找一種方法來增加saml消息的到期時間。我使用Spring Security和SAML 1.0.0-RC2。Spring security Saml - SP和IDP之間的時差

此時,如果服務器**時間太不相同,例如, 5分鐘,我得到以下錯誤:

HTTP Status 401 - Authentication Failed:Error validating SAML message: SAML response is not valid; nested exception is org.opensaml.common.SAMLException: SAML response is not valid 

我想將過期時間設置爲10分鐘,以防止這些錯誤。我一直在查看文檔,但我不知道如何更改到期時間。如果我看看Configuration authentication object部分,可以更改到期時間,但我無法理解這一想法。

有人能幫我嗎?

**我的客戶的服務器(SP)和服務器(IDP,最有可能與ADFS服務器安裝)。


拍攝黑暗

samlAuthenticationProvider豆現在看起來像下面的代碼:

<bean class="org.springframework.security.saml.SAMLAuthenticationProvider" id="samlAuthenticationProvider"> 
    <property ref="userDetailsService" name="userDetails"/> 
</bean> 

我能添加到ExpiringUsernameAuthenticationToken班上有一個參考?然後調用構造函數line 53

+0

其他錯誤信息,你會得到指示SP和IDP之間的responseSkew /時間不匹配是:org.opensaml.common.SAMLException:響應時間的問題是太舊或與日期在未來,傾斜60,2015年時-08-27T12:40:28.284Z,或者LogoutResponse中的響應問題時間太舊或將來會有日期。 – 2015-08-27 14:08:28

回答

8

在斯特凡之後,我知道在哪裏看!其實文檔確實描述了這件事,我只是沒有選擇它:10.3 Validity intervals。歡呼Stefan指出responseSkew屬性!

只是財產responseSkew添加到WebSSOProfileConsumerImpl和SingleLogoutProfileImpl豆類:

<bean id="webSSOprofileConsumer" class="org.springframework.security.saml.websso.WebSSOProfileConsumerImpl"> 
    <property name="responseSkew" value="600"/> <!-- 10 minutes --> 
</bean> 

<bean id="logoutprofile" class="org.springframework.security.saml.websso.SingleLogoutProfileImpl"> 
    <property name="responseSkew" value="600"/> <!-- 10 minutes --> 
</bean> 
+0

它在春季啓動 – Max 2017-08-28 10:09:22

+0

@jacob不工作,我使用的,甚至後,我已指定responseSkew爲60000我仍然得到這個錯誤的Grails!任何幫助?在grails中,我沒有bean聲明,所以一切都從配置文件連線。所以設置好..但我仍然得到相同的異常 – artapart 2017-11-28 11:21:28

+0

@artapart:對不起,我從來沒有在我的生活中與Grails合作過,所以我不知道。只要問這是一個新的stackoverflow問題,所以Grails社區可以幫助你! – 2017-11-29 08:21:24

4

貌似在允許的時間迪菲昂斯是硬編碼。

See this source file看看不變responseSkew。默認值是60秒。

我覺得這裏最好的選擇是嘗試設置,同時在服務器上。

+0

非常感謝,你確實給了我一個方向來尋找問題。但是這個值並不是硬編碼,它在60秒內默認值! – 2014-09-04 08:52:23

+0

正確的,對不起,是我不好 – 2014-09-04 11:52:32

0

我知道,答案已被選定,但我分享我所發現的任何人使用Grails 3,春季安全工作的決議核心,SAML 2.0。

我必須將maxAssertionTime值與responseSkew一起設置,以便WebSSOProfileConsumerImpl能夠從IDP獲取響應。