Kli*_*akM 11 iis web kerberos authentication ntlm
如何检查我的 IIS 站点是使用 NTLM 还是 Kerberos?以及如何将身份验证从 Kerberos 更改为 NTLM?我正在使用 IIS 7.5。
Gre*_*kew 11
从:
确定 HTTP 身份验证是 NTLM 还是 Kerberos
http://support.microsoft.com/kb/891032
[...]“由于我们正在查看此跟踪以查看客户端是否正在发送身份验证信息,因此我们可以使用 TCP 段来跟踪 HTTP GET 请求和来自服务器的响应。以下是该帧的片段从客户端发送认证信息:
23 4294967263.4294641621 LOCAL 00045A420DBC HTTP GET 请求(来自使用端口 3135 的客户端) 192.168.0.2 192.168.0.4 IP HTTP:GET 请求(来自客户端使用端口 3135 请求:Webdent 请求 / ASP1 请求资源 / 请求 192.168.0.4) HTTP:协议版本 = HTTP/1.1 HTTP:接受 = image/gif、image/x-xbitmap、image/jpeg、image/pjpeg、application/vnd。HTTP:Accept-Language = en-us HTTP:Accept-Encoding = gzip,deflate HTTP:User-Agent = Mozilla/4.0(兼容;MSIE 6.0;Windows NT 5.1;SV1;.NET CLR HTTP:主机 = 外星人 HTTP:连接= 保持活动 HTTP:授权 = 协商 TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAFASgKAAAA 44 77 3D 3D 0D 0A 0D 0A AAADw==....
“这告诉我们什么?我们可以看到授权标头设置为“协商”,我们可以看到在该标头中发送了一长串字符。这个响应告诉我们客户端和服务器正在协商一个 NTLM 连接。我们知道这里使用了 NTLM 身份验证,因为第一个字符是“T”。如果它是“Y”,那就是 Kerberos。标头设置为“协商”而不是“NTLM”。这不是意味着它将使用 Kerberos 或 NTLM,但它将“协商”授权方法并在可以时首先尝试 Kerberos。如果它不能使用 Kerberos,它将使用 NTLM。
// if it is Negotiate...
if (String.Compare(Request.ServerVariables["HTTP_AUTHORIZATION"].Substring(10, 1), "Y", true) == 0)
{
// we are using Kerberos
}
else
{
// we are using NTLM
}
Run Code Online (Sandbox Code Playgroud)
如果您有权访问 IIS 服务器,那么答案比检查 HTTP 流量简单得多:只需查看 Windows 身份验证的站点身份验证模块配置即可。
归档时间: |
|
查看次数: |
65083 次 |
最近记录: |