IIS 日志记录的 Windows 集成身份验证

文章翻译 文章翻译
文章编号: 969060 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

简介

在配置 Windows 集成身份验证时,本文将讨论请求和响应的 HTTP 客户端和 Internet Information Services (IIS) 服务器之间通信。本文还说明了 IIS 在 IIS 日志中记录此身份验证过程的方式。

更多信息

Windows 集成身份验证使用 Kerberos v5 身份验证和 NTLM 身份验证。Kerberos 是用于验证用户身份或主机标识的行业标准身份验证协议。如果正在运行 Windows 2000 Server、 Windows Server 2003 中或 Windows Server 2008 中,一个域控制器上安装 Active Directory,并且客户端 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 服务器,并使 Web HTTP 客户端请求都支持 Kerberos 协议,和 IIS 配置为使用 Kerberos,如下所示的日志条目将显示在客户端请求和服务器响应的 IIS 日志:

# 软件: Microsoft Internet Information Services 6.0
# 版本: 1.0# 日期: 2009年-01-01 02: 48: 20
# 字段: 日期时间 s 站点名 s ip cs 方法 cs uri 资源 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 uri 资源 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 协议的网络身份验证
有关如何在 IIS 7.0 中配置 Windows 集成身份验证的详细信息,请访问下面的 Microsoft 网站:
http://technet.microsoft.com/en-us/library/cc754628.aspx

Kerberos 身份验证

以下是两个基于方案的示例。在第一种情况下,IIS 配置为支持协商协议和 NTLM 协议。在第二个方案中,支持仅协商协议。

方案 1 – 协商协议和 NTLM 协议

在此示例中,将 IIS 配置为支持协商协议和 NTLM 协议。在 IIS 6.0 和早期版本中,这是通过设置为"协商,NTLM"NTAuthenticationProviders 元数据库项。在 IIS 7.0 和更高版本中,必须作为提供程序中的<windowsAuthentication>部分列出的协商协议和 NTLM 协议。

注意在下面的示例中,通过使用 Microsoft 网络监视器 3.2 工具捕获请求标头和响应标头。要下载最新版本的网络监视器工具,请访问以下 Web 站点:</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,* / *
接受语言: 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: text/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) 意味着"没有凭据将用安全程序包中。换句话说,客户端不发送任何凭据。

客户端接收 401.2 响应从 IIS 服务器后,客户端知道 IIS 被配置为使用 Windows 集成身份验证,而不是匿名身份验证。因此,客户端必须提供适当的身份验证信息在其请求中。

客户端将类似于以下请求:

HTTP: 请求 GET /
命令: 获取
URI: /
ProtocolVersion: HTTP/1.1
接受: 每个 gif 的图像、 图像/x-xbitmap、 jpeg 图像、 图像/pjpeg,* / *
接受语言: 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>格林威治标准时间
6.0-Microsoft 的 IIS 服务器:
ContentLength: 19
ContentType: text/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: text/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,* / *
接受语言: en-美国
接受编码: gzip,地道
用户代理: Mozilla/4.0 (兼容 ;MSIE 6.0 ;Windows NT 5.1)
主机: www.kerberos.com
保持活动连接:

如果 IIS 服务器未配置为支持匿名身份验证,则服务器将返回 401.2 告诉客户端是未经授权的客户端的状态。错误状态,以及服务器还发送服务器支持的身份验证协议的列表。IIS 会返回在此方案中仅 NTLM 响应标头如下所示:

HTTP: 响应,HTTP/1.1,状态代码 = 401
ProtocolVersion: HTTP/1.1
StatusCode: 401,未经授权
原因: 未经授权
ContentLength: 1656年
ContentType: text/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,* / *
接受语言: 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: text/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>

IIS 发送 401.1 状态通知客户端客户端必须提供有效的身份验证信息的其余部分。客户端接收这一难题。然后,客户端发送一个类似于以下的多个请求:

HTTP: 请求 GET /
命令: 获取
URI: /
ProtocolVersion: HTTP/1.1
接受: 每个 gif 的图像、 图像/x-xbitmap、 jpeg 图像、 图像/pjpeg,* / *
接受语言: 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: text/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 如何验证浏览器客户端
更多有关如何在 IIS 中与 Kerberos 相关的问题的疑难解答,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
326985如何在 IIS 中与 Kerberos 相关的问题进行疑难解答
更多有关如何修改 AuthPersistence 元数据库属性设置为控制身份验证,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
318863如何修改 AuthPersistence 元数据库属性设置为控制身份验证
使用集成 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
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 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