2013-01-24 30 views
1

場景:許多網站必須通過我公司的Extranet上的iframe進行顯示。 Extranet使用SSL和基於Active Directory的Windows身份驗證。每個iframe'd網站都需要經過身份驗證的用戶,但不要求用戶手動登錄該用戶。每個網站的認證機制尚未確定。使用Windows Identity Foundation對iframe中的Extranet網站進行身份驗證

問題:我需要找出如何完成iframe中的自動登錄。我可以要求iframe的網站使用適合我的目的的特定認證機制,但我確實需要向他們提供來自AD的特定用戶信息。

我被建議使用Windows Identity Foundation來解決身份驗證問題。我正在考慮兩種解決方案,但作爲WIF新手,我不確定哪種更好,甚至可能。

解決方案1:我使用AD聲明創建了自定義安全令牌服務。當用戶瀏覽我的一個iframe頁面時,頁面以編程方式從STS獲取一個令牌,並以某種方式將該令牌添加到iframe。看看網上的示例我相信我理解如何構建STS並以編程方式獲取令牌。但是,如何將其與iframe一起使用?將其插入iframe URL(http://website/default.aspx?token=xxx)似乎不安全。

解決方案2:我創建了相同的STS。 iframe的網站被配置爲使用STS作爲身份驗證提供程序。當用戶瀏覽我的iframe頁面時,iframe的網站會自動向STS查詢令牌,並將用戶登錄。但iframe的Web部件如何獲取令牌 - 是可用的原始用戶請求上下文,或它是如何工作的?這可以在iframe內部完成 - 我記得曾經閱讀過關於cookie不被允許進入iframe的內容嗎?

對上述問題的回答 - 也許是一種不同的解決方案 - 是最受歡迎的。

回答

2

尋求解決方案#2。如果iframe中的頁面(從現在起依賴方-RP)被配置爲使用STS作爲認證提供者,那麼當第一次加載時,他們將把瀏覽器(iframe)重定向到STS。 STS知道用戶已經有了一個單一登錄會話(最初登錄到外部網),因此發出一個會話令牌,它將它作爲HTTP POST發送給依賴方,WIF截獲並以表單形式發送給客戶端的Cookie(默認情況下,但可以使用自定義會話令牌處理程序重寫)。有些瀏覽器最初並不允許在iframe內部使用cookie,而是通過在依賴方的響應中發送p3p標頭,這是允許的。

+0

謝謝,安德烈亞斯。所以需要做的是創建STS,並配置我的Extranet和RP站點以使用STS作爲身份驗證提供程序。我需要爲RP站點做些什麼來發送p3p頭文件,還是瀏覽器配置? –

+0

我發現這個鏈接描述的過程:[鏈接](http://support.microsoft.com/kb/324013)。所以感謝你的幫助,安德烈亞斯。 –

相關問題