聯合方案中的 ADFS v.2.0 傳遞信任
目前我正在使用 ADFS 在兩個獨立的域之間建立聯合信任。
我的問題很簡單:ADFS v. 2.0 是否支持跨聯合身份提供者的傳遞信任?如果是這樣,請參閱下面的問題。(我不是在談論 AD 森林信任,而是關於在聯合方案中使用純 ADFS 2.0 完全分離的域)
我知道 ADFS v 1.0 沒有,如本文件第 9 頁所述。 但是,當查看 ADFS 2.0 附帶的聲明規則時,這似乎是可能的,正如 Microsoft 合作夥伴所證實的那樣。 但是:關於這個主題的文件是一團糟!根本沒有我能找到的關於這個主題的 ADFS v. 2.0 相關聲明(如果你有關於這個的任何文件,請幫助我!)。
為了更清楚,讓我們假設這種情況:
Federation provider (A) trust federation provider (B) which trusts identity provider (C). So, does (A) trust identities comming from (C) across (B)?
在支持傳遞信任的情況下更進一步的問題:
- 是否可以以任何方式限制 ADFS 中的傳遞信任?如果是這樣,怎麼做?(Powershell 命令或 ADFS GUI 菜單項在哪裡找到它)
- 傳遞信任如何影響債權的 Issuer 和 OriginalIssuer 屬性?
- 如果傳遞信任與聲明轉換一起使用,並且提供者 (B) 將把來自 (C) 的傳入聲明轉換為相同類型的(新)聲明和值,這將如何影響 Issuer 和 OriginalIssuer 屬性?
重要提示:無論是否支持,我都需要一些官方資源。 但是,如果沒有其他人能夠提供它們並且有人能夠以他的經驗回答問題,那麼即使沒有官方消息來源,我也願意將賞金提供給他/她。
好吧,由於沒有人回答,我花時間建立了一個測試實驗室並嗅探了 HTTPS 流量。以下是我的研究結果,以防其他人遇到這個問題:
- 我仍然沒有這個問題的官方來源
- 首先:是的,傳遞信任是可能的,除了法律事務之外沒有辦法阻止它。無論如何,適當的 SLA 是任何联合方案的基礎。
- 沒有特殊的“設置”來禁用或啟用它,但使用聲明規則引擎,如果檢測到任何類型的傳入聲明,受信任的合作夥伴可以配置任何類型的傳出聲明,因此無法“保護”非法訪問。
- 在我的測試中,ADFS 附帶的規則模板都沒有更改聲明的 OriginalIssuer 屬性。有人可能會想:好的,所以我可以使用該屬性來驗證任何索賠的原始來源並建構一個過濾器以僅允許直接來自(而不是遍歷,預設情況下僅影響 Issuer 而不是 OriginalIssuer 屬性)的索賠值得信賴的合作夥伴。但這是錯誤的,為什麼呢?看下一行。
- 正如我所說,預設模板不會觸及 OriginalIssuer 屬性。但是您可以使用規則引擎創建自定義規則。使用它,您幾乎可以更改每種索賠類型、價值及其屬性。是的:也是 OriginalIssuer。因此,對於聯邦提供商而言,索賠看起來是直接來自受信任的合作夥伴,實際上它們只是在那裡進行了轉換。
因此,如果不需要,我建議至少將“傳遞”場景最小化,即檢查 OriginalIssuer。它不能防止傳遞登錄,但管理員必須明確配置它——這將使法律事務在 SLA 違反的情況下更加容易。此外,我不認為將 OriginalIssuer 更改為“錯誤”的可能性,事實上:即使沒有該功能,每個第三方軟體都可以始終使其能夠充當後端系統和可信身份提供商之間的代理. 例如,IdP 可以為合作夥伴 (C) 創建影子帳戶 - 因此總會有一種解決方法,因為在使用聯合時,您放棄了對誰能夠將訪問權限委派給特定資源的控制權。
無論如何 - 如果您和我一樣對 ADFS 2.0 如何處理傳遞信任感到好奇,那麼現在您無需建構測試實驗室和嗅探 HTTPS 流量就知道了。