IIS 記錄來進行 Windows 整合式驗證

文章翻譯 文章翻譯
文章編號: 969060 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

簡介

本文將告訴您的要求和回應的 HTTP 用戶端和伺服器之間通訊網際網路資訊服務 (IIS) 設定整合式 Windows 驗證時。這份文件也會說明 IIS 會在 IIS 記錄檔中記錄此驗證程序的方式。

其他相關資訊

Kerberos v5 驗證和 NTLM 驗證,就會使用 Windows 整合式驗證。Kerberos 是一個用來驗證使用者識別碼或主應用程式識別碼的業界標準驗證通訊協定。如果安裝 Active Directory 網域控制站執行 Windows 2000 Server、 Windows Server 2003 或 Windows Server 2008,並且用戶端 Web 瀏覽器支援 Kerberos v5 驗證通訊協定,用戶端與 IIS 伺服器會使用 Kerberos v5 驗證。否則,在用戶端與 IIS 伺服器使用 NTLM 驗證。

附註如需 Windows 整合式驗證的詳細資訊,請造訪下列 Microsoft 網站:
http://technet2.microsoft.com/WindowsServer/en/Library/80c79abb-348d-467a-92fe-825e696be3351033.mspx?mfr=true
IIS 記錄檔 NTLM 和 Kerberos 驗證,在 IIS 記錄檔的方式是不同,取決於使用的是何種通訊協定。

如果 IIS 伺服器和 HTTP 用戶端進行 Web 要求兩者都支援 Kerberos 通訊協定,和 IIS 設定為使用 Kerberos,如下所示的記錄項目會出現在用戶端的要求及伺服器回應的 IIS 記錄檔中:

# 軟體: Microsoft Internet Information Services 6.0
# 版本: 1.0# 日期: 2009年-01-01 02: 48: 20
# 欄位: 日期時間 s 站台名稱 s ip cs 方法 cs 任意 cs uri 查詢的孔 cs-使用者名稱 c ip cs(User-Agent) sc 狀態 sc 子狀態 sc-win32 狀態
2009-01-01 02: 48: 20 W3SVC1 <serverIP>GET /-80- <clientIP>Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1) 401 2 2148074254
2009-01-01 02: 48: 21 W3SVC1<serverIP>取得 /-80 網域 \ 使用者<clientIP>Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1) 200 0 0</clientIP> </serverIP></clientIP></serverIP>

如果 IIS 伺服器或 HTTP 用戶端不支援 Kerberos 通訊協定,或是如果 IIS 伺服器設定為使用只 NTLM,下列幾種記錄檔項目出現在用戶端的要求及伺服器回應的 IIS 記錄檔:

# 軟體: Microsoft Internet Information Services 6.0
# 版本: 1.0
# 日期: 2009年-01-05 02: 29: 47
# 欄位: 日期時間 s 站台名稱 s ip cs 方法 cs 任意 cs uri 查詢的孔 cs-使用者名稱 c ip cs(User-Agent) sc 狀態 sc 子狀態 sc-win32 狀態
2009-01-01 02: 29: 47 W3SVC1 <serverIP>GET /-80- <clientIP>Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1) 401 2 2148074254
2009-01-01 02: 29: 47 W3SVC1 <serverIP>GET /-80- <clientIP>Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1) 401 1 0
2009-01-01 02: 29: 47 W3SVC1<serverIP>取得 /-80 網域 \ 使用者<clientIP>Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1) 200 0 0</clientIP> </serverIP></clientIP></serverIP></clientIP></serverIP>

Windows 整合式驗證

可將 IIS 設定來支援交涉通訊協定、 NTLM 通訊協定,或兩者。在 IIS 6.0 及較早版本中,看這是藉由設定 NTAuthenticationProviders 中繼資料庫機碼。在 IIS 7.0 中,這是藉由設定適當的<Provider></Provider>受測<windowsAuthentication></windowsAuthentication>ApplicationHost.config 檔案中或 web.config 檔案中的項目。

詳細資訊如方式,以便設定 Windows 整合式驗證,在 IIS 6.0 和舊版按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
215383如何將 IIS 設定成同時支援 Kerberos 通訊協定和 NTLM 通訊協定進行網路驗證
如需有關如何設定 Windows 整合式驗證,IIS 7.0 中的詳細資訊,請造訪下列 Microsoft 網站:
http://technet.microsoft.com/en-us/library/cc754628.aspx

Kerberos 驗證

以下是兩個案例為基礎的範例。在第一個案例中,IIS 被設定為支援交涉通訊協定和 NTLM 通訊協定。在第二個案例中,並支援交涉通訊協定。

案例 1 – 交涉通訊協定 」 和 「 NTLM 通訊協定

在這個範例中,IIS 被設定為支援交涉通訊協定和 NTLM 通訊協定。在 IIS 6.0 及較早版本中,這是經由設定 NTAuthenticationProviders 中繼資料庫機碼,以 「 交涉,NTLM"。在 IIS 7.0 和較新版本中,同時交涉通訊協定和 NTLM 通訊協定必須被列為 [ <windowsAuthentication>] 區段中的提供者。

附註下列範例中,在要求標頭和回應標頭會擷取使用 Microsoft 網路監視器 3.2] 工具。如果要下載最新版的 「 網路監視器 」 工具,請造訪下列網站:</windowsAuthentication>
http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=4865
當 Microsoft Internet Explorer 提出要求時,會將永遠視為 Internet Explorer,是匿名的新連接的第一個要求。因此,Internet Explorer 不會傳送任何認證為要求的一部分。Internet Explorer 會將資源的第一個要求中傳送的要求標頭的範例如下:

HTTP: 要求時,GET /
命令: 取得
ProtocolVersion: HTTP/1.1
接受: gif 影像、 影像/x-xbitmap、 圖像/jpeg 影像/pjpeg,1 / 1
接受語言: en-美國
接受編碼方式: gzip 上, 平凹
使用者代理: Mozilla/4.0 (相容 ;MSIE 6.0 ;Windows NT 5.1)
主應用程式: www.kerberos.com
連接: 保持使用中

如果 IIS 伺服器未設定為支援匿名驗證,IIS 伺服器就會傳回 401.2 的狀態告知用戶端是未經授權的用戶端。錯誤狀態,以及伺服器也會傳送一份該伺服器支援的驗證通訊協定。回應標頭,IIS 就會傳回在這個案例中,如下所示:

HTTP: 回應,HTTP/1.1 中,狀態碼 = 401
ProtocolVersion: HTTP/1.1
StatusCode: 401、 未授權
理由: 未獲授權
ContentLength: 1656年
ContentType: 文字 /html
6.0/Microsoft-IIS 伺服器:
WWWAuthenticate: 交涉
WWWAuthenticate: NTLM

在安裝 IIS 伺服器會傳送此回應中,IIS 將下列相關的項目寫入 IIS 記錄檔:

<Date> <Time>W3SVC<ID><serverIP>取得 /-80- <clientIP>401 2 2148074254 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1)</clientIP> </serverIP> </ID></Time></Date>

附註"2148074254"的 win32 狀態 (也定義成-2146893042 / 0x8009030E / SEC_E_NO_CREDENTIALS) 表示 「 沒有認證是安全性套件中可用的 」。換句話說,用戶端已經不會傳送任何認證。

用戶端會從 IIS 伺服器在收到 401.2 回應之後,用戶端就會瞭解 IIS 設定為使用 Windows 整合式驗證,而非匿名驗證。因此,用戶端必須提供適當的驗證資訊,在其要求中。

在用戶端再提出的要求,如下所示:

HTTP: 要求時,GET /
命令: 取得
URI: /
ProtocolVersion: HTTP/1.1
接受: gif 影像、 影像/x-xbitmap、 圖像/jpeg 影像/pjpeg,1 / 1
接受語言: en-美國
接受編碼方式: gzip 上, 平凹
使用者代理: Mozilla/4.0 (相容 ;MSIE 6.0 ;Windows NT 5.1)
主應用程式: www.kerberos.com
連接: 保持使用中
授權: 交涉
YIIJ5wYGKwYBBQUCoIIJ2zCCCdegJDAiBgkqhkiC9xIBAgIGCSqGSIb3EgECAgYKKwYBBAGCNwICCqKCCa0EggmpYIIJpQYJKoZIhvcSAQICAQBugggtygmUMIIJkKADAgEFoQMCAQ6iBwMFACAAAACjggPMYYIDyDCCA8SgAwIBBaENGwtWQU5EQU5BLkNPTaIjMCGgAwIBAqEaMBgbBEhUVFAbEHd3dy5rZXJiZXJvc

附註在本文中的 Kerberos 票證的授權: 交涉標頭已被截斷。

IIS 伺服器會接收要求。IIS 伺服器會在用戶端已包含驗證資訊,藉由新增的授權: 交涉標頭和值。用戶端已經傳送有效的認證資訊,驗證成功。然後,IIS 會傳送下列回應:

HTTP: 回應,HTTP/1.1 中,狀態碼 = 200
ProtocolVersion: HTTP/1.1
StatusCode: 200,[確定]
原因: [確定]
日期: xxx, <Date> <Time>GMT
6.0/Microsoft-IIS 伺服器:
ContentLength: 19
ContentType: 文字 /html
WWWAuthenticate: 交涉 =</Time> </Date>

附註詳細的步驟的 Kerberos 驗證發生的方式在這裡不包括在內。如需有關 Kerberos 驗證的運作方式的詳細資訊,請造訪下列 Microsoft 網站:
http://technet.microsoft.com/en-us/library/cc758557.aspx
然後,IIS 會將下列項目寫入 IIS 記錄檔:

<Date> <Time>W3SVC<ID> <serverIP> GET /time.asp-80 網域 \ 使用者<clientIP>Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1) 200 0 0</clientIP> </serverIP> </ID></Time></Date>

案例 2-交涉通訊協定

在案例中,IIS 設定為支援僅交涉通訊協定而非交涉通訊協定和 NTLM 通訊協定,要求和回應流量沒有受到相同。在 IIS 日誌中的記錄也都一樣。IIS 從瀏覽器對匿名要求的初始回應中的差別。如此一來,IIS 會傳送交涉標頭:

HTTP: 回應,HTTP/1.1 中,
狀態碼 = 401
ProtocolVersion: HTTP/1.1
StatusCode: 401、 未授權
理由: 未獲授權
ContentLength: 1656年
ContentType: 文字 /html
6.0/Microsoft-IIS 伺服器:
WWWAuthenticate: 交涉

NLTM 驗證

下面是以案例為主的範例,在其中 IIS 設定為支援 NTLM 通訊協定。在 IIS 6.0 及較早版本中,看這是藉由設定為 「 NTLM 」 NTAuthenticationProviders 中繼資料庫機碼。在 IIS 7.0 和較新版本中,NTLM 通訊協定必須被列為 [ <windowsAuthentication>] 區段中的提供者。

同樣地,Internet Explorer 不包含任何驗證資訊的新連接上的第一個要求中:</windowsAuthentication>

HTTP: 要求時,GET /
命令: 取得ProtocolVersion: HTTP/1.1
接受: gif 影像、 影像/x-xbitmap、 圖像/jpeg 影像/pjpeg,1 / 1
接受語言: en-美國
接受編碼方式: gzip 上, 平凹
使用者代理: Mozilla/4.0 (相容 ;MSIE 6.0 ;Windows NT 5.1)
主應用程式: www.kerberos.com
連接: 保持使用中

如果 IIS 伺服器未設定為支援匿名驗證,伺服器就會傳回通知用戶端是未經授權的用戶端 401.2 狀態。錯誤狀態,以及伺服器也會傳送一份該伺服器支援的驗證通訊協定。此時 NTLM 專用的 IIS 傳回的回應標頭,如下所示:

HTTP: 回應,HTTP/1.1 中,狀態碼 = 401
ProtocolVersion: HTTP/1.1
StatusCode: 401、 未授權
理由: 未獲授權
ContentLength: 1656年
ContentType: 文字 /html
6.0/Microsoft-IIS 伺服器:
WWWAuthenticate: NTLM

IIS 再寫入類似下列的 IIS 記錄檔的項目:

<Date> <Time>W3SVC<ID><serverIP>取得 /-80- <clientIP>401 2 2148074254 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1)</clientIP> </serverIP> </ID></Time></Date>

當用戶端收到的伺服器支援 NTLM 通訊協定的伺服器的通知時,用戶端就會送交要求。用戶端授權標頭包含驗證資訊:

HTTP: 要求時,GET /
命令: 取得
URI: /
ProtocolVersion: HTTP/1.1
接受: gif 影像、 影像/x-xbitmap、 圖像/jpeg 影像/pjpeg,1 / 1
接受語言: en-美國
接受編碼方式: gzip 上, 平凹
使用者代理: Mozilla/4.0 (相容 ;MSIE 6.0 ;Windows NT 5.1)
主應用程式: www.kerberos.com
連接: 保持使用中
授權: NTLM TlRMTVNTUAABAAAAB7IIoAcABwssAoAAAACAAIACAAAABWQU5XSU5YUFZBTkRBTkE =

NTLM 信號交換的一部分,伺服器會確認用戶端已經傳送驗證資訊。不過,伺服器必須用戶端傳送更多的資訊。因此,伺服器會傳回另一台 401 回應,如下所示:

HTTP: 回應,HTTP/1.1 中,狀態碼 = 401
ProtocolVersion: HTTP/1.1
StatusCode: 401、 未授權
理由: 未獲授權
ContentLength: 1539年
ContentType: 文字 /html
6.0/Microsoft-IIS 伺服器:
NTLMAuthorization: NTLM
TlRMTVNTUAACAAAADgAOADgAAAAFgomiRCfS+kdwvJ0MAAAAAAAAAAJYAlgBGAAAABQLODgAAAA9WAEEATgBEAEEATgBBAAIADgBWAEEATgBEAEEATgBBAAEAFgBXAEkATgBEAEss8AVwBTADIAMAAwADMABAAWAHYAYQBuAGQAYQBuAGEALgBjAG8AbQADAC4AVwBpAG4AZABvAHcAcwAyADAAMAAzAC4AdgBhAG4AZA

然後,IIS 會類似下列的 IIS 記錄檔中寫入一個項目:

<Date> <Time>W3SVC<ID><serverIP>取得 /-80- <clientIP>Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1) 401 1 0</clientIP> </serverIP> </ID></Time></Date>

401.1 IIS 所傳送的狀態告知用戶端,用戶端必須提供有效的驗證資訊的其餘部分。在用戶端收到這項挑戰。然後,用戶端會傳送一個類似下列的多個要求:

HTTP: 要求時,GET /
命令: 取得
URI: /
ProtocolVersion: HTTP/1.1
接受: gif 影像、 影像/x-xbitmap、 圖像/jpeg 影像/pjpeg,1 / 1
接受語言: en-美國
接受編碼方式: gzip 上, 平凹
使用者代理: Mozilla/4.0 (相容 ;MSIE 6.0 ;Windows NT 5.1)
主應用程式: www.kerberos.com
連接: 保持使用中
NTLMAuthorization: NTLM
TlRMTVNTUAADAAAAGAAYAHgAAAAYABgAkAAAAA4ADgBAAAAAGgAaAE4AAAAQABAAaAAAAAAAAACoAAAABYKIoFYAQQBOAEQAQQBOAEEAQQBkAG0AaQBuAGkAcwB0AwwHIAYQB0AG8AcgBWAEEATgBXAEkATgBYAFAAo53RVbJ / EucAAAAAAAAAAAAAAAAAAAAAcWyNNNlQLNMC3EVd + aoZCA9lkh8dVY/M

當 IIS 伺服器收到這項要求時,則會將 IIS 伺服器與網域控制站完成驗證要求進行通訊。在確認用戶端的驗證要求之後,IIS 就會傳送回應,如下所示:

HTTP: 回應,HTTP/1.1 中,狀態碼 = 200
ProtocolVersion: HTTP/1.1
StatusCode: 200,[確定]
原因: [確定]
6.0/Microsoft-IIS 伺服器:
X 電源已由: ASP.NET
ContentLength: 19
ContentType: 文字 /html
快取控制: 私用

附註詳細的步驟的 NTLM 驗證方式會發生在這裡不包括在內。如需有關 NTLM 驗證的運作方式的詳細資訊,請造訪下列 Microsoft 網站:
http://msdn.microsoft.com/en-us/library/bb643328.aspx
IIS 會傳送此回應之後,IIS 會將下列相關的項目寫入 IIS 記錄檔中:

<Date> <Time>W3SVC<ID> <serverIP> GET /time.asp-80 網域 \ 使用者<clientIP>Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1) 200 0 0</clientIP> </serverIP> </ID></Time></Date>

?考

如需有關如何 IIS 驗證瀏覽器用戶端,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
264921IIS 驗證瀏覽器用戶端的方式
如需有關如何疑難排解與 Kerberos 相關的問題,在 IIS 中,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文:
326985如何疑難排解與 Kerberos 相關的問題,在 IIS 中
如需有關如何修改 AuthPersistence Metabase 屬性設定為控制項的驗證,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文:
318863如何修改 AuthPersistence Metabase 屬性設定為控制項的驗證
當您使用整合式 Windows 驗證 IIS 6.0 時,就會發生效能降低問題的詳細資訊,如按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
917557修正: 您可能會遇到效能變慢,當您在 IIS 6.0 中使用整合式 Windows 驗證,以及 Kerberos 驗證通訊協定
如需有關 Microsoft NTLM 的詳細資訊,請造訪下列 Microsoft 網站:
http://msdn.microsoft.com/en-us/library/bb643328.aspx
如需有關 Microsoft Kerberos 的詳細資訊,請造訪下列 Microsoft 網站:
http://msdn.microsoft.com/en-us/library/aa378747 (VS.85).aspx
如需有關 IIS 整合式 Windows 驗證的詳細資訊,請造訪下列 Microsoft 網站:
http://technet2.microsoft.com/WindowsServer/en/Library/80c79abb-348d-467a-92fe-825e696be3351033.mspx?mfr=true
如需有關在 IIS 6.0 中的 [NTAuthenticationProviders 中繼資料庫] 屬性的詳細資訊,請造訪下列 Microsoft 網站:
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/ea7cd846-33da-49c9-927f-d4e76d6309ac.mspx?mfr=true
如需有關<windowsAuthentication>組態屬性,在 IIS 7.0 中,請造訪下列 ? ?:</windowsAuthentication>
http://www.iis.net/ConfigReference/system.webServer/security/authentication/windowsAuthentication

屬性

文章編號: 969060 - 上次校閱: 2012年7月6日 - 版次: 1.0
這篇文章中的資訊適用於:
  • Microsoft Internet Information Services 7.0
  • Microsoft Internet Information Services 5.0
  • Microsoft Internet Information Services 5.1
  • Microsoft Internet Information Services 6.0
關鍵字:?
kbexpertiseinter kbexpertiseadvanced kbhowto kbsurveynew kbmt KB969060 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:969060
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com