簡體   English   中英

正在重放 ID 為 [the id] 的 SAML 斷言

[英]The SAML assertion with ID [the id] is being replayed

我正在使用 ComponentSpace 為我的 .net 核心應用程序設置 SAML。 使用的 IDP 是 OneLogin,服務提供商是在他們的示例之上構建的。

在本地一切都很好。 我們今天部署並在每次嘗試連接時收到錯誤

"The SAML assertion with ID [the id] is being replayed". 

順便提一下,我們部署應用程序的服務器在澳大利亞。

我不明白為什么我們只是嘗試連接時會重播。 對於每個錯誤,我們都會看到不同的 ID。

我試圖將 AssertionLifetime 設置為 24 小時

"AssertionLifeTime": "24:04:04"

但這沒有區別。

我們保留了以前 SAML 斷言 ID 的緩存,以便我們可以檢測可能的重放攻擊。 每個 SAML 斷言都有一個唯一的 ID,因此您永遠不會再看到相同的 ID。 每次我們收到一個斷言時,我們都會根據這個緩存檢查它。 如果 ID 在緩存中,我們將拋出此異常。 在正常情況下,您不應看到此類錯誤。

服務器的位置和斷言生命周期都不應該有任何影響。 有單獨的檢查來確保斷言沒有過期,但所有時間都是 UTC,只要服務器時鍾合理同步,就不會有任何問題。 如果有,您會看到不同的異常消息。

很奇怪你看到他的錯誤,更奇怪的是它只在部署后才開始。 SAML 響應由 IdP 在 HTTP Post 中發送。 是否有某種網絡基礎設施或配置導致這些消息被復制? 跟蹤您的應用程序收到的網絡流量將有助於確定原因。

我正在使用另一個 IDP 和 SP,但至少在我的情況下,問題是如果登錄過程花費太多時間用戶登錄,用戶單擊“返回”或“刷新”按鈕並嘗試再次使用相同的 SAML 斷言。

正如信息一樣:每個 SAML 斷言都有一個唯一的 ID。 SAML 斷言的生命周期可以在系統中配置。 您可以檢查您的 IDP 和 SP 之間的時差。 通常為 3 秒。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM