2014年5月15日 星期四

IE提示Windows驗證,無法正常SSO登入(NTLM)

最近執行專案遇到了無法正常SSO(Single Sign on)登入站台,即使IIS設定好了Windows驗證,Client的IE瀏覽器也有將Windows整合驗證打勾,也加入了信任的網站怎麼會無法進行SSO呢!?

 

這個問題困擾了好幾天,終於在今天在同事的協助下找到問題

 

首先先釐清狀況的問題點

1. Web Server確認Windows驗證有開啟,LDAP驗證也能正常通過。

2. Client有用網域帳號登入,IE雖會彈跳Windows驗證視窗,但key入AD帳號密碼LDAP驗證可以成功。

3. Windows XP、Vista、7可以使用NetBIOS  SSO正常登入,ServerIP及FQDN無法SSO會彈跳Windows驗證視窗。

4. Windows Server 2003、2008使用NetBIOS、IP、FQDN都無法SSO,會彈跳Windows驗證視窗。

5. 使用Fiddler2確認傳送的是NTLM而非Kerberos。



 

 

由以上總結得知Web Server驗證是可以正常的,且SSO應是沒問題

也使用了Fiddler2監控了IE與Web之間的溝通行為,發現SSO正常的狀況下Client都會丟Domain\user給IIS進行驗證

而SSO驗證失敗則傳送空值給IIS,所以理所當然驗證錯誤後會彈跳Windows驗證視窗

 

經過幾天的燒腦袋後終於在Client的IE 將站台網址加入近端內部網路後正常SSO驗證成功了。

 

這項設定是基於IE預設安全性區域的設定,若有使用SSO還是需要加入近端內部網路

 

所以最後設定IE安全性的問題還是交由AD來進行派發GPO

 

 

SSO觀念釐清

Client須JoinDomain,並使用DomainUser登入OS,再由瀏覽器將帳號及密碼傳遞至IIS,IIS再將帳號密碼丟給AD做驗證,驗證成功使用者將會自動SSO登入Web。

 

IE瀏覽器在進行Windows驗證的時候會由Negotiate去判別使用的是NTLM or Kerberos,這個地方可以從Fiddler2看出來。

 

 

參考資料(重點整理)

MSDN – Internet Explorer 提示彈跳Windows驗證
http://support.microsoft.com/kb/258063/zh-tw
MSDN – IE上的安全性區域定義
http://support.microsoft.com/kb/174360
在AD Server派發GPO讓網域成員加入定義的網站於近端內部網路
http://blog.miniasp.com/post/2014/01/10/configure-Internet-Explorer-security-zone-sites-using-group-polices.aspx

Orignal From: IE提示Windows驗證,無法正常SSO登入(NTLM)

沒有留言:

張貼留言