2013-02-07 54 views
2

我們目前正在開發一個使用ADFS 2.0的SSO項目。作爲IDP/CP信託。應用程序設計的基本要求之一是在空閒時間(可以是任何事)之後重新認證用戶。經過廣泛的搜索後,我發現只有幾個實現(除了SharePoint示例),它說明了在ADFS服務器中的WebSSOlifetime and TokenLifeTime設置。我知道WebSSOLifeTime是一個服務器範圍內的設置(默認值:480),TokenLifeTime是令牌過期的RP級設置(默認值爲0 - 10小時)。爲了隨機測試這些設置,我爲我的RP應用程序將WebSSOlifetime值更改爲5分鐘,將TokenLifeTime更改爲3分鐘。但是它在5分鐘的空閒時間後沒有觸發重新認證(如WebSSOlifetime中設置)。我測試的RP應用程序包括 - Google應用程序 - ADFS集成了SSO和單頁應用程序來測試聲明值。如果有人可以發佈任何相關的指向ADFS 2.0會話維護功能的指針,那將會很棒。SSO場景中的ADFS 2.0會話超時

回答

2

我發現一些汗後的解決方案。在Stackoverflow中的發佈提供了一個起點(非常感謝!)。控制IP/STS登錄提示的關鍵參數是新鮮度值(這是Oasis documentation中提到的可選參數)。

包含在web.config的federatedAuthentication部分中時,此參數(設置爲freshness =「0」)將提示IDP根據WCT參數中的當前時間檢查令牌的新鮮度值。之後,我發現(經過大量測試)TokenLifeTime set通過shell腳本進入畫面。此(TokenLifeTime)控制用戶在將其重定向到登錄屏幕之前可以處於活動狀態的時間。

正如你所請求URL中看到: https://XXX/adfs/ls/?wa=wsignin1.0&wtrealm=https%3a%2f%2fXXX%2fXXX&wfresh=0&wctx=rm%3d0%26id%3dpassive%26ru%3d%252fXXX%252fDefault.aspx&wct=2013-02-14T01%3a36%3a17Z

wfreshwctx值傳遞給IDP進行驗證。

我還不確定一切(新鮮,TokenLifetime和WebSSOLifetime)如何在幕後同步。關於背景的一個很好的解釋會非常有用(和of course will add some more reputation :))。