我有一个网站在IIS上运行,并使用Windows身份validation。 所有configuration为访问该站点的用户都是AD域(不是本地用户)。 在网站的属性中,我已经设置使用AD域作为领域。
现在,当使用Firefox,Safari或Chrome – 一切都很好。 当用户试图打开该网站时,他得到了login框。 他只是input“用户名”和“密码”(让我们假装它是一个实际的login名和密码:P),他进入了网站。
当使用IE浏览器,但是,事情变得讨厌。 当用户试图打开网站 – 他得到的login框。 用户再次input“用户名”和“密码”,但被拒绝! 而当第二次login框popup – 它的用户名填写为“web-server-domain-name \ username”这是错误的,因为web服务器域名不是所有用户所在的域(它是“广告域”)。 我花了好几天的时间想弄清楚发生了什么…请注意,如果我手动input“ad-domain \ username” – 我可以毫无问题地进入网站。 所以,我的猜测是IE发送错误的用户名,如果没有指定域。
无论如何,IE是触发这种行为的唯一浏览器!
是否有可能做一个服务器端修复? 也许有可能以某种方式将用户自动映射到AD用户?
如果它不是可解决的服务器端 – 是否有客户端修复?
谢谢。
PS:我更像是一个程序员,而不是系统pipe理员,所以configuration服务器并不是我的强项…… P
更新 :
@Evan:是的,还启用了“Windows域服务器的摘要式身份validation”。
@Eric:IIS版本是6.0。 启用的身份validation方法为:集成和摘要 – 禁用所有其他方法。 至于安全日志。 我查看了一下,当在Chrome / Firefox中进行“用户名”和“密码”login时,以及从IE浏览器进行“ad-domain \ username”和“password”login时,生成的日志消息是一样的(我没有区别,无论如何)。 当input“用户名”和“密码”,我没有看到安全(或任何其他)日志中的任何错误,所以不能告诉它试图使用什么方法。
更新2 :
正如埃里克在评论中提到的 – 我和小提琴手一起玩耍…在玩这个游戏时,我注意到,当在FF和IE中input“用户名”和“密码” – 发送的“授权”通过IE发送的时间比FF发送的时间要长(几乎是两倍)。
我试图禁用Windows集成身份validation,只保留摘要启用 – 解决了这个问题(这意味着,IE浏览器使用正确的领域就像其他浏览器),但这导致bazillion其他问题与我的网站,因为在Digest – 用户模拟服务器不起作用(这导致问题,当连接到数据库等)。
有任何想法吗?
如果Windows服务器(运行IIS 6.0)和Windows客户端(使用IE访问您的网站)都是本地networking(LAN)的一部分,则会发生这种情况。
同样重要的是,您需要启用“集成Windows身份validation”,因为您需要使用和validationAD域中的用户。
我们来调用这个AD域的名称ad_domain_name 。
在这种情况下(LAN +集成身份validation),Windows客户端和服务器之间的身份validation过程使用AD域安全devise。
你可以检查是否是这种情况(在Windows客户端上):
ad_domain_name\username 这个程序应该允许第一次尝试login。
我已经多次观察到这种情况,通常所有这一切都被微软视为本地networking中“所需的安全特性”。 通常被认为是一个非问题,因为login过程可以做任何事情。
我不知道是否有一个IIS(和/或Windows服务器)configuration,可以避免所有这些混乱,但我很好奇,因为你知道。
我通常通过确保站点落入IE中的Intranet区域来解决这个问题。