Internet Explorer 8 authentication session reset in DNS Round Robin Environment

請考慮以下情境:

環境中,Exchange Server 採用 DNS Round Robin的方式來進行類似 Load Balance的功能。

使用者使用IE8連線到這組Exchange Server的OWA站台,當嚐試要在新的標籤頁中開啟郵件或是行事曆時,瀏覽器要求使用者重新輸入帳號密碼。每開一個Tab使用者就會看到這個畫面要求重新輸入帳號密碼。

發生的原因:

  • IE8 推出了一個新的架構:LCIE,這樣的架構將不同的Tab使用不同的Process來運行,主要的目的是大幅提升瀏覽器的穩定性,避免一個頁面發生問題導致整個瀏覽器Crash。在IE8之後,幾乎目前所有的網路瀏覽器都推出相同的概念或是在下一版就會推出相同概念的Process Model。
  • 根據預設行為,IE8所有的Tab Process在同一個Frame下將可以共享登入的Session,如果今天要連結的目標伺服器是相同的情況下,同一個Frame Process下的Session 是會共用的,也就是說,原則上並不需要重新驗證就可以進入這個伺服器或服務。
  • 但是在DNS Round Robin的環境中,當前用戶端要連線的Exchange Server IP是隨機取得的位置。因此,對於IE8來說,這個環境很可能會導致在不同的Tab Process中,取得的連線位置是不同的。當連線的目標位置不同的時候,驗證的Session肯定是會被重置因而導致需要重新驗證。這樣的情形並不是一個產品問題,而是不同時空背景下產品的發展路徑導致的現象。

解決方案的部分,我們可分成兩個部份來說明:

  • 最直接的方式就是透過修改伺服器的架構,採用硬體的NLB或是使用微軟的NLB Solution。
  • l 單純透過Client的方式來處理的話,我們可以透過新增以下的機碼來緩解這個問題:
    HKCUSoftwareMicrosoftInternet ExplorerMain 
    Name: TabProcGrowth
    Type: DWORD
    Value: 1