-
【茶包射手專欄】IIS用IP可登入、用機器名稱不行
-
同事來求救! 說他們有兩台IIS,用IE輸入http: //192.168.1.1/webApp可以順利用網域帳號登入,但用http: //machineName/webApp卻會一直跳出帳號密碼登入對話框,輸入三次後則傳出驗證失敗錯誤。兩台IIS都有加入Domain,所以可以輸入機器名稱就連到主機;用IP時可以登入成功,表示IIS認得網域帳號,與DC間的連繫應該也是OK的。
由現象來看,問題出在IIS Authentication過程,於是我首先想到的是用Fiddler觀察認證過程。比對之下,發現二者的認證過程有差異,當輸入機器名稱時,IE一開始會送出NTLM認證,但從第三個Request起卻會變成Kerberos... (IP時則是從頭到尾使用NTLM)
或許有些人有印象,我之前處理過一次WSS一直跳出帳號密碼的狀況,當時也是Kerberos惹的禍。我對AD的研究不深,無力參透IIS與IE間何時會用NTLM,何時改走Kerberos的祕密,不過照方煎藥倒難不倒我。
在有問題的機器上執行cscript adsutil.vbs set w3svc/1/ROOT/NTAuthenticationProviders "NTLM",限定IIS只准用NTLM。再測一次,果然用機器名稱也可順利登入了。但問題真正的原因仍然是個謎,看看過往的高手達人們,有沒有人要出面露兩手為大家解惑。