注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

c.pass 的博客

众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。

 
 
 

日志

 
 

AD用户新旧密码同时可用于登录问题  

2010-08-18 16:43:56|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

       今天,有一个做网管的同学,向我求教了一个AD域用户新旧密码同时可用的问题,查了些资料,才弄明白了问题所在!感觉不错,所以拿出来给学网络的朋友作为参考~~~~~ 

       她的公司使用2003建了一个域控(整个网络中只有这一个域控制器)。在服务器上给域用户修改密码以后,发现AD域用户新旧密码竟然同时可用(即都可用于登录使用)~~~~

       在一个博客上看到解决AD用户密码可同时使用的问题:就是先退出域,再次加入域!!!

       在自己做网管的时候,回想起来域用户登录到域服务器以后,会在"C:\Documents and Settings" 这个目录下创建一个和登录用户名字一样文件夹,这个文件夹是用户的登录环境配置文件!!  只要删除这个文件,AD 用户密码同时可用的问题就会解决~~~    但对于一个100多台电脑的公司,要是域用户把一些资料放在桌面,得把资料拷贝到其他地方,还得一个一个的删除"C:\Documents and Settings"目录下的用户文件夹,可够自己忙了~~~~~

       后来想到在域用户的"属性"的"账户项卡"中 勾选上"用户下次登录时须更改密码",用户下次登录就需要更改密码进行登录了~~~~       这样也就解决了AD用户新旧密码同时可用于登录到域的问题了~~~~

        还有一种情况是,在域服务器关机、域成员机网线断掉的情况下,是可以使用以前的密码登录到域服务器的~~~~~~  这是因为在第一次登录后,在本地计算机上会为这个用户建立相关账户信息存储目录,并在验证中通过,也就是说在断线的情况下域用户登录的是域帐号配置文件的缓存!(但是在使用中存在很多问题,而且不能访问活动目录资源)

 

以下内容为AD用户新旧密码同时可用于登录的详细解说(原帖:http://bisheng.blog.51cto.com/409831/187263

-----------------------------------------------------------------------------------------------------------------------------------------------

 上周五写了一篇名为<深度剖析修改AD用户密码的数据同步机制>的文章,其中发现在修改了AD用户密码以后,5分钟之内,新旧密码同时可用的状况。
    今天微软GTSC的工程师换了两拨人做技术支持,在不断的尝试过程当中,找到了答案。
    在他们不断的给出解决办法的时候,其中提供了一篇KB号为906305的文章。链接如下:
   
http://support.microsoft.com/kb/906305/en-us
    根据KB中大致描述了问题的状况和原因,虽然这篇KB是适用于WinSrv03的,但是现在证明,在WinSrv08上同样适用。
    详细情况,大家可以看KB文章(建议看英文原版,中文自动翻译简直就不是人话,机器就是机器),下面谈谈我个人的想法。
    同上篇文章后面jrfly331兄所提到的一样。这个5分钟就是为了防止AD同步延时问题,防止DC数量比较多时,用户登录所在的站点内还没有成功的更新到密码的修改的情况。。这样,即使新密码没有生效,旧密码依然可用。其实上篇文章里的那个截图也显示出来了,我在一台海外的DC上修改密码,花了40秒钟才复制到中国的DC。所以,有些网络效率不高的情况下,是会发生密码同步需要一定时间的情况的。鉴于这样的考虑,我们的旧密码,就有启用了一种生存时间的概念,而这个生存时间,就是从密码修改一刻算起,5分钟整。而在WinSrv03中,这个时间为60分钟。
    那么这个问题的关键在哪里呢??就在NTLM。。
    NTLM是什么?NTLM是NT LAN Manager的缩写,它是 Windows NT 早期版本的标准安全协议之一,也是Windows Server系统三大安全验证协议之一,至今保留。它主要用于多种网络身份验证,包括AD验证,Exchange的POP3,IMAP,SMTP等等。此外,NTLM 还为没有加入到域中的计算机提供的身份验证协议,这也是为什么我们是用WS-*去调它的原因,因为第三方很多应用,跟AD是没有关系的。具体的身份验证机制和流程,如果大家有兴趣的话,可以google一下,或者在微软的知识库里找到,这里我就不多说。
    但需要提到的就一点,也是与这次碰到的问题紧密相关的一点。就是,在NTLM的验证过程中,一旦发生密码更改,它会将用户的dspswvalidate属性修改为ture,使得在一个生存时间内,旧密码依然可以通过NTLM的验证。而这个生存时间的值,在WinSrv03中,是60分钟。在WinSrv08中则变为5分钟,虽然5分钟这个,我现在还没有找到任何官方的明确说法,但至少从我的测试当中,能够确认这一点。
    值得注意的是,这个缓存,在LDAP验证方式中同样存在,但却不存在于kerberos验证方式中。换句话说,也就是我们最常见的使用Ctrl-Alt-Del的交互式方式登录到桌面系统是不会存在旧密码可用的情况的。今天测了一下,的确如此。
    这里,我也需要做一个检讨。我们在发现这个问题的时候,确实是使用的WS-*的方式进行登录的。因为我们用WS-*做了一个SSO的接口,用于其它的第三方系统能够统一使用AD作为唯一的身份验证机制。另外,我做测试的时候也为了方便,直接在WS-*上面加了一个查询。所以我就我没有使用交互式登陆来进行测试,因为那样还需要找个客户端,然后每次还得登进登出的,很麻烦。这也导致了在之前测试的时候没有能够及时发现两种方式验证在效果上存在的区别。
    不过现在,问题的原因总算是找到了,而且解决问题的办法也就在KB当中。
    值得我们思考的是,任何问题都不是表象的,如果希望避免问题再次出现,甚至希望能够控制问题的发生,我们就应该深究。
    当然,这次如果不是被逼,我也懒得去研究这些。人老了,钻不动了。。哎。。。

  评论这张
 
阅读(955)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017