標籤

4GL (1) 人才發展 (10) 人物 (3) 太陽能 (4) 心理 (3) 心靈 (10) 文學 (31) 生活常識 (14) 光學 (1) 名句 (10) 即時通訊軟體 (2) 奇狐 (2) 音樂 (2) 產業 (5) 郭語錄 (3) 無聊 (3) 統計 (4) 新聞 (1) 經濟學 (1) 經營管理 (42) 解析度 (1) 遊戲 (5) 電學 (1) 網管 (10) 廣告 (1) 數學 (1) 機率 (1) 雜趣 (1) 證券 (4) 證券期貨 (1) ABAP (15) AD (1) agentflow (4) AJAX (1) Android (1) AnyChart (1) Apache (14) BASIS (4) BDL (1) C# (1) Church (1) CIE (1) CO (38) Converter (1) cron (1) CSS (23) DMS (1) DVD (1) Eclipse (1) English (1) excel (5) Exchange (4) Failover (1) FI (57) File Transfer (1) Firefox (2) FM (2) fourjs (1) gladiatus (1) google (1) Google Maps API (2) grep (1) Grub (1) HR (2) html (23) HTS (8) IE (1) IE 8 (1) IIS (1) IMAP (3) Internet Explorer (1) java (3) JavaScript (22) jQuery (6) JSON (1) K3b (1) LED (3) Linux (112) Linux Mint (4) Load Balance (1) Microsoft (2) MIS (2) MM (51) MSSQL (1) MySQL (27) Network (1) NFS (1) Office (1) Oracle (125) Outlook (3) PDF (6) Perl (59) PHP (33) PL/SQL (1) PL/SQL Developer (1) PM (3) Postfix (2) postfwd (1) PostgreSQL (1) PP (50) python (1) QM (1) Red Hat (4) Reporting Service (28) ruby (11) SAP (234) scp (1) SD (16) sed (1) Selenium-WebDriver (5) shell (5) SQL (4) SQL server (8) SQuirreL SQL Client (1) SSH (2) SWOT (3) Symantec (2) T-SQL (7) Tera Term (2) tip (1) tiptop (22) Tomcat (6) Trouble Shooting (1) Tuning (5) Ubuntu (33) ufw (1) utf-8 (1) VIM (11) Virtual Machine (2) vnc (3) Web Service (2) wget (1) Windows (19) Windows (1) WM (6) youtube (1) yum (2)

2013年11月9日 星期六

IIS使用Windows驗證時,無法登入,且會出現401.1 錯誤

http://blog.sanc.idv.tw/2011/08/iiswindows4011.html

剛剛在整理舊的備忘資訊時剛好看到這個事項,這是之前花了好幾天的時間解決的一個問題,不過也因為時間已經太久,現在也沒機器設備可以將當時狀況還原,所以只能用文字的方式描述。
這 個問題的來源,是因為當時要建設本機的開發環境,而每個人的開發環境下,都有自己的一個網址,例如說,我本機的開發網址是 sky.sanc.idv.tw,而其他人的可能是xxx.sanc.idv.tw,當然,姑且先不討論這種方式好或不好,畢竟有的時候,在公司下的某些 限制,不是一般人能想像的( 說到這就想哭了… ),當然,這種設定,其實也不難,只要在DNS下,設定一下就好了,可憐就可憐在於IT部門用了一堆理由藉口,不準這樣做,好吧,既然不准設DNS,那我 設定自己電腦上的host總可以了吧,於是,故事就這樣展開了…
因為我的主機,也必須要當其他人的Web Server ( 當初原本是每個人設定每個人本機上的iis,但有一台因特殊原因,必須利用我這台當跳板 ),所以,我這台的電腦上,除了sky.sanc.idv.tw外,還要設定aaa.sanc.idv.tw。
所以我把當時我所做的事情,稍微還原一下。
1.我先於windows下,將想要解析的Domain name加入於hosts檔案中。
a.使用記事本打開/WINDOWS/system32/drivers/etc/hosts檔案( 因有權限問題,所以別忘了先調整權限 )。
b.在最下面加入要解析的網址如下。( 改完存檔,也別忘了把權限調整回來。 )
image
到此,就可以於本機上解析到sky.sanc.idv.tw還有xxx.sanc.idv.tw。
然後我們去ping一下,看看正不正確。
image
看來是沒有任何問題了,這時候我們要開始設定IIS
1.打開IIS,然後新增網站,設定基本上如下,xxx的網站又是同步驟來執行。
image
2.因為我們是使用AD驗證,所以要開啟windows驗證功能,並且將匿名驗證的功能關掉,如果沒看到Windows驗證,就可能要去給他裝一下。
image
到這邊為止,IIS也設定完成了,這時候,就可以很開心的在本機上模擬兩個網址…原本應該是如此,但果然事不從人願…,怎樣登入,都登入不進去,都會一直卡在登入畫面。
image
這時候按下取消出現的是

HTTP 錯誤 401.1 - Unauthorized

使用您提供的認證,沒有權限檢視此目錄或網頁。
嗯, 我想也是,畢竟沒有登入成功,所以一定會出現沒有權限之問題,原本猜想是資料夾問題,但是將windows驗證關閉,開啟匿名登入,又可以順利進去,所以 把矛頭指向Domain name解析的問題,猜想說,難道IIS不支援嗎?,不可能吧,Apache都可以輕易達成了,IIS怎麼可能不支援這基本的東西,就這樣,搞了我一兩 天。
後來在Microsoft的網站上找到一篇,疑是很像這問題的文章。
http://support.microsoft.com/kb/896861
雖然裡面的症狀,幾乎都不是我所碰到的,但是這段話,卻讓我開始懷疑。

當網站上使用 「 整合式驗證 」 且具有對應至本機回送位址的名稱時,就會發生這個問題。
於是詳細了查詢這個問題,原來是因為安全性的問題,讓IIS會禁止回應,具體的安全性文題如下:
之 所以發生這個問題,是因為 NT LAN Manager (NTLM) 將不同的命名慣例視為遠端個體,而非本機個體。當用戶端先計算與快取在本機 "lsass" 記憶體中由伺服器傳送對 NTLM 挑戰的正確回應,再將回應傳回伺服器時,會無法驗證本機。當 NTLM 的伺服器碼發現在本機 "lsass" 快取中有已接收的回應時,伺服器碼不遵循驗證請求,並將該請求視為重新顯示攻擊。這個行為導致本機驗證失敗。
所以產生了此問題

在套用此安全性更新之後,如 Microsoft SQL Server 或 Internet Information Services (IIS) 等應用程式在進行本機 NTLM 驗證請求時可能失敗。
那要如何解決此問題呢,官方有兩種解決方法,第一種是停用NTLM 反映保護,但不推薦,所以我們採用第二種方式,停用特定位置的保護,步驟如下。
1.打開Regedit,並找到這個位置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
2.在MSV1_0上,按下滑鼠右鍵,選新增,多字串值。
image
3.將此值命名為BackConnectionHostNames
image
4.點選剛剛建立好的值,並按下滑鼠右鍵,選修改,然後於視窗內填入要略過的網址如下。
image
5.按下確定後,Regedit就可以關閉了,這時候需要將IIS的網站重啟。
image
然後,就可以順利的登入了!!
這次的事情,老實說,碰到了兩次,第二次的時候,因已經過了一段時間,又給他熊熊的忘記了,所以,又處理了一兩天,所以,把資訊記錄下來,是非常重要的 >"< 。
以下是參考文章:
http://support.microsoft.com/kb/957097
http://support.microsoft.com/kb/896861

沒有留言:

張貼留言