2014-10-03 66 views
0

我的問題歸結爲,當我在應用程序之間切換時,是否可以刷新用戶的聲明?從我可以說的答案很可能是「不」。我已經完成了添加「claimTypeRequired」的舞蹈,但這沒有幫助。Windows身份基礎來自AD FS的所需聲明

假設我有多個應用程序,App1,App2,App3,App4,App5。

看來AD FS在您通過任何應用程序進行身份驗證後不會再次受到攻擊,並且在簽出時沒有辦法,是嗎?所以有了這個想法,我必須得到所有應用程序的所有聲明,而不管我登錄哪個應用程序。作爲一個附註,我通過AD FS的SQL存儲過程創建這些聲明。 usp_GetAppClaims @AppID = 1, @UserGuid = 'GUID'

我爲每個應用程序在各自的URI中存儲了一組聲明,其中包含多個值。類似於「角色」聲明。例如:

我是不是做得比想要的要困難?如果我需要索取所有索賠,我對令牌尺寸略有擔心。 20個應用程序,每個都有10-50個聲明... 4kb Cookie最大權限?也許這與大多數情況無關。

回答

0

該問題最終成爲兩個使用相同cookie的應用程序。發現你必須在web.config中爲Cookie指定一個唯一的名稱,否則在切換應用程序時不會將其重定向回AD FS。

1

如果您在最後「發行轉換規則」中執行索賠查詢,則每個應用始終會獲得自己的索賠集。

如果你有一個發行者鏈,並且聲明來自鏈中的第一個,那麼我不知道有任何方法可以區分每個RP(在鏈的末尾)。爲了避免巨大的索賠集,一些人(如果可能的話)使用WIF ClaimsAuthenticationManager在RP中執行此操作。

+0

隨着我不斷研究這一點,ClaimsAuthenticationManager可能最終成爲最佳選擇。你得到的任何機會或許可以解釋你的第一點? – MisterIsaak 2014-10-06 12:41:33

+0

如果ADFS服務器是IdP(該帳戶在AD中),那麼您可以在接受轉換規則中查詢您的SQL。然後,所有RP的索賠將在那裏(大標記問題等)。如果您僅在(每RP)發行轉換規則中執行此操作,則每個RP都有自己的一組索賠。 (在ADFS的小餅乾,在RP的小餅乾) – paullem 2014-10-06 18:34:57

+0

啊,好了,現在我明白你在說什麼了。感謝您的解釋。 – MisterIsaak 2014-10-06 21:36:37

1

Wrt,「刷新」即Value1的值在訪問App1和App2之間改變,然後否 - 您必須註銷,儘管「隱藏」。

就大型cookie而言,從前(WIF 3.5)有「會話模式」,即Switching to WIF SessionMode in ASP.NET

相關問題