2012-01-22 30 views
2

我們正在建立一個ADFS(2.0),負責爲幾個面向客戶的系統驗證用戶身份。認證機制外包給外部合作伙伴,該合作伙伴可以訪問多個認證提供商。帶有外部認證服務提供商的ADFS單點登錄

我們最近遇到了以下方案:

  1. 用戶試圖訪問面向客戶的系統A和被重定向到ADFS進行身份驗證。
  2. ADFS將用戶重定向到身份驗證夥伴,並在其中成功進行身份驗證。
  3. 用戶通過其身份驗證令牌返回到ADFS。
  4. ADFS將用戶發送回系統A.他現在有一個會話。
  5. 用戶嘗試訪問系統B,其中他尚未對 進行身份驗證,並將其發送到ADFS。

這是ADFS從我們預期的行爲中逃逸出來的地方。 ADFS不會識別用戶,而是通過有效的身份驗證令牌將其透明地發送回系統B,ADFS會將其發送給我們的身份驗證合作伙伴進行重新驗證。

這完全破壞了我們希望爲客戶使用系統A和B的SSO功能,但我們還沒有找到一種方法讓ADFS建立用戶會話並在訪問第二個系統期間重新使用該會話。

有沒有人解決過這個問題?

ADFS只在完全負責身份驗證時才提供單點登錄功能嗎?

回答

0

在傳統的ADFS中,您將不同的身份驗證夥伴設置爲具有ADFS的聲明提供程序,即您聯合各自的STS。然後提供您需要的SSO功能。

聽起來好像你的問題是ADFS和外部合作伙伴之間只有聯合,而不是ADFS和外部合作伙伴處理的認證提供者之間的聯合。

0

您有權訪問ADFS2日誌嗎?在Windows機器 - >事件查看器 - >應用程序和服務日誌 - > AD FS 2.0 - >管理

檢查也是A,B和ADFS2是在同一圓信任的,也是斷言消費服務端點系統B.

希望它能幫助的,

路易斯

1

如果您的RP-s(系統A和系統B)已配置爲強制認證(ForceAuthn =「true」),則ADFS預計將以此方式運行。要解決您的問題,請確保從​​元素中刪除新鮮度屬性。

+0

感謝您的回答,但不幸的是沒有解決問題。我認爲不同之處在於,在我們的場景中,AD FS實際上並未進行身份驗證,而是從另一個IDP中繼身份驗證。 – Henrik

+0

這是一個典型的場景,ADFS充當聯合提供程序(FP)。無論如何,回到我的答案,我建議你檢查一下SAML認證請求。 SAML示蹤劑,並確保屬性ForceAuthn不存在於其中。 – UncleZen