目录服务是企业最重要的IT基础架构之一,我们的十八般武艺系列,就从这里开始吧。
目录服务
目录服务的出现是计算机网络化和分布式处理的一个必然的结果。大家最为熟悉的,就是微软的活动目录。其实早在AD出现之前的上世纪80年代,就已经存在很多产品化的目录服务软件,比如Xerox的Grapvine、Netware4中的NDS等等。简单的说,
目录的内容,就是存储网络中的各类资源(帐户、计算机、组等等),类似网络中的电话黄页;
目录的服务,就是指一系列针对外部应用程序和用户的外围服务,实现基本的查询、更新、复制、认证等功能。
“目录”本质上是一个数据库,但是目前的目录服务软件背后,都有一个极其重要的概念:
分布式数据库。不同于以前NT的PDC/BDC,现在企业的网络都很大,跨越城市甚至国家,分布式数据库的特点是在每一个数据库节点(域控制器)都可以进行修改,然后通过同步机制,保证整个数据库的一致性。理解分布式的概念,这很重要。目录服务作为一个数据库,它不局限于一台物理计算机,而是由若干计算机一起构成的一个基于网络的分布式数据和服务的体系。因此,目录服务的管理比一般的单机软件要困难,你没办法备份或者Ghost整个目录,错误的操作,往往会通过网络复制,形成“牵一发而动全身”的后果。
微软的活动目录
活动目录(Active Directory)是微软企业级应用服务器的核心之一,也是目前市场占有率最高的目录服务软件(没有之一)。这是一套复杂的系统软件,很难用几千字把它说明白。我们主要集中在明辨概念、找到误区和把握趋势这几个方面。
AD有关的概念太多了,我们抓大放小,先捞干的。简单的说,AD与我国目前的户籍制度和派出所非常像。活动目录中保存着的各类网络资源、帐号、关系,就类似户籍系统的档案;活动目录域控制器,就是分布在各地的派出所,户籍档案都保存在派出所(AD的数据库,保存在DC上)。国家幅员辽阔,一个派出所不够用,就在各地都建派出所(DC);国家人口众多,户籍档案过于庞大,于是大家以省为单位,单独管理自己的户籍档案(子域)。
给老百姓发×××,这是登陆后授予身份Token;老板姓结婚生子,需要确认身份或更新户籍档案时,向派出所提出请求(DC身份验证、信息更新等);派出所更新了户籍信息,并通告省内的其他派出所同时更新(活动目录服复制);买了新房子,申请×××证和户口本,这就是计算机Join Domain;老百姓农转非,迁户口,从一个省到另一个省,这就是账户转移;出国,涉及到了护照签证,这是跨森林信任和认证。
学习活动目录必须搞明白的概念包括如下几个领域:
1)基本概念:对象、组、OU、域、子域、父域、树、森林。这几个概念不难,但是一定要搞清楚它们之间的关系,和一些必要的限制。
2)与DNS的集成方式。这是分布式的AD与网络基础架构的桥梁,这里面涉及到了服务器客户机登陆、网络资源查找、内外网域名映射、内部DNS解析等等很多方面。在没有理解DNS与AD之间错综复杂的关系之前,不可贸然动手去部署AD。
3)各种情况下的身份认证。用户登陆后获得的令牌,跨子父域等场景,身份模拟,等等。
4)复制,各种对象的复制(包括FSMO的概念等)。很多AD的问题出现在复制方面,需要理解复制的实现方式,和当前AD环境的复制途径,能够用一些工具查看复制情况并发现问题。
5)LDAP协议。
6)Kerberos协议。
我们还需要了解活动目录的物理结构,DC是活动目录数据库和服务的载体。AD数据库是名为ntds.dit的一个文件,它是基于微软著名的Extensible Storage Engine(AD、Exchange、Access等用到的数据库,都从此演化而来)的半结构化数据库,你需要对这个文件和它的事务日志等等有所了解。TechNet上的这篇《 How the Data Store Works》,能够回答你有关ntds.dit的一切问题。
活动目录管理的常见误区
很多企业的IT都有过把AD推倒重做的痛苦经历,AD不像一般的软件,可以通过卸载重装来解决问题。遇到了棘手的问题推倒重做AD,往往也意味着重建帐号、客户机重新加入域、重装Exchange等大量的工作,和来自用户的抱怨。因此,我这里总结一些AD管理方面的误区,帮助大家避免AD的推倒重做。
1)很多企业轻视设计和规划,一般体现在对域的划分和域名选择的随意性上,有很多企业为此把AD推倒重做,甚至不止一次。活动目录的设计需要从企业IT的整体规划出发,不能各自为战,甚至出现一个公司多个独立域的奇怪现象。活动目录提供了多种层次结构,
对于一般的企业,不建议在域结构上做得过于复杂,设计的要点应满足“简单就是美”这样一个宗旨。活动目录的设计支持容量非常大,没有必要因为担心用户过多而划分子域,只需要合理的规划OU即可。TechNet上的经典文章《 Best Practice Active Directory Design for Managing Windows Networks》给出了AD规划的步骤,强烈建议大家在运行DCPromo这个命令之前,至少把这篇文章阅读3遍。
2)运营和管理松懈,安全形同虚设。很多企业将活动目录视为“绿色软件”,仅在新员工报到时创建帐号,平时极少监控和维护,AD的逻辑结构往往都很混乱。“没有规矩,不成方圆”,如同中国的户籍制度,企业需要一套AD日常管理的流程,这个流程至少要涉及到:
-创建新帐号,用户帐号命名的规则、OU选择及邮箱(如有Exchange)的规则,避免随意性和前后不一致;
-创建用户组的申请流程,组的管理办法,组的有效期规定,避免AD中出现大量废弃的组,要定期清理,要有规则;
-跟安全有关的制度,如密码策略、用户遗忘密码的恢复流程、日常审计等等最基本的安全制度
-计算机加入域的办法,是否需要设置权限,域中计算机账户的管理,最基本的组策略
设计各类流程的目的只有一个,保证“一致性”。否则活动目录中的内容在经历比较长的一段时间后,一定会出现大量的错误、零乱、冗余的数据。
3)对活动目录基础结构和Schema缺乏足够的保护。 Exchange、OCS以及其他的分布式系统软件,在安装时往往需要向AD中写入大量的信息(包括分布式配置和对AD Schema等更新)。很多企业没有意识到这类软件对AD更新时存在的风险,在安装时没有事先对AD进行备份,也缺乏足够的测试,往往由于操作不当导致AD的结构出现损坏。对于这类“牵一发而动全身”的举动,应该慎之又慎,事先做好充足的功课,绝不可以赶鸭子上架,临时抱佛脚。
成为优秀活动目录管理员所需要的经历
仅仅做DCPromo和创建帐户,是不会让你成为一个优秀的活动目录管理员的。好的AD管理员,需要至少有如下3个方面的技能或者经验:
1)升级和整合。从旧版本升级到新版本(如NT PDC到Win2k AD),把两套独立的活动目录合并为一套,这在现实生活中非常的常见,企业的兼并收购,就需要这方面的整合,有时候,甚至是微软的活动目录和其他公司目录服务产品的整合。这个在国外称之为Active Directory Consolidation,很多IT顾问公司,都把这门技术作为吃饭的营生。
2)灾难恢复。在数据丢失或者硬件故障的情况下,重建DC,并且从备份恢复活动目录的经验。AD的灾难恢复是令很多人头疼不已的问题,这里面涉及到信任关系、SID、DNS、复制同步等等复杂的问题。
3)异构并存。由于某些原因,企业中需要有两套甚至两套以上的目录服务同时并存,如AD跟Lotus Notes and Domino。异构并存需要管理员掌握Microsoft Identity Integration Server之类的身份集成软件,也要在流程上做出很多工作。
以上三个领域涉及到了大量的知识,工具和经验的运用。在学习过程中,不妨从做实验的角度,模拟一些这方面的需求,设计一些小项目来让自己完成。
目录服务的发展方向
活动目录是保存企业IT资源的一个封闭式数据库。域作为一个分界线,把企业内部资源和外部的资源清晰地分开了。随着商务活动的交互性增强,企业之间的协作日益紧密,我认为,以目录服务为代表的企业IT资源管理,大趋势是从封闭走向开放。体现在具体的方面,主要包括以下几个现象和趋势:
1)SSO和ADFS的出现。SSO是指Single Sign On,单一登陆;ADFS是指活动目录联合服务。很多企业中,用户需要访问的资源,可能来自第三方的服务提供商,而不在公司的Domain之内,这时,就需要一个可以在Internet上方便的验证企业用户身份的服务,也就是ADFS。ADFS将活动目录拓展到Internet。
2)ADAM的出现。微软 ADAM是一个独立的目录服务器,类似于活动目录(ActiveDirectory),但没有和Window集成在一起。也就是说,它不需要域服务器而单独运行,同时包含活动目录的功能。如果要开发基于目录服务的应用,ADAM是个不错的选择。传统的AD,同时承担了用户身份管理(Identity Management)和为分布式应用程序提供配置信息保存的角色,而且,这两个角色都依赖域的存在。ADAM是用户帐户数据库与分布式应用数据库分离的一个尝试和开始。ADAM只为分布式应用服务,更为纯粹,相比AD这样一个高度耦合和复杂的系统,在多变的IT环境下显得更加灵活。
3)SOA、云计算等崭新应用模式对的身份管理的新要求。基于托管的云计算,要求企业的目录服务在企业内网和托管数据中心之间进行同步,这中间存在很多问题和变数,也有安全和管理上的隐患,应该是今后目录服务的一个突破口。
ADFS、ADAM、云计算的身份管理,这些都是目录服务和用户身份管理(Identity Management)前沿领域,若想成为此方面的专家,应该针对这些技术做跟踪和不断的研究。
目录服务(活动目录)的学习资料
微软网络广播:活动目录在 Windows Server 2003 中的应用
http://technet.microsoft.com/zh-cn/dd673479.aspx
岳雷老师的Active Directory 教程,写非常清楚,适合初学者
http://bbs.51cto.com/thread-627255-1.html
Directory service
http://en.wikipedia.org/wiki/Directory_service#Implementations_of_directory_services
Active Directory Architecture
http://technet.microsoft.com/en-us/library/bb727030.aspx
Ientity 2.0 tops 2008 trends in identity management
http://www.sourcewire.com/releases/rel_display.php?relid=37436&hilite=
微软AD团队的Blog
http://blogs.technet.com/ad/
一些图书
各种各样的“活动目录管理大全”之类的书就不介绍了,来几本经典的。
《深入理解Microsoft Windows 2000 分布式服务:开发人员和技术管理人员指南》,David Chappell著,潘爱民译,微软三层架构时代的经典之作。帮助你理解活动目录,以及基于活动目录之上的分布式应用的一些关键概念。我对AD的深入理解,大多来源于此书。
《Windows 2000 Active Directory程序设计》,这本书有些老了,主要讲的是ADSI的编程(而且是古老的VB)。但是它的头两章仅用了30页纸,就对活动目录的方方面面做了一个极其清楚地介绍,适合用来明晰概念。
《Windows安全性编程》,这也是一本老书,而且不讲AD。但是,如果你对Windows中的种种登陆方式、身份验证、NTLM、Netlogon、Kerberos等等概念不甚理解,这本书可以看一看,代码看不懂没关系,看概念即可。
这些只是供你参考,有些内容比较老了,而且在.net和云计算的今天,也算不上什么前沿技术了。请根据自己的需要选择,千万不要犯 资料导向型的错误。
--------------------------------------------------------------------------------------
笔者水平有限,技术发展日新月异,文中若有出入或疏漏之处,还请读者不吝指出,谢谢大家!
©著作权归作者所有:来自51CTO博客作者yongyu2000的原创作品,如需转载,请注明出处,否则将追究法律责任
职场 服务 休闲
IT人的十八般武艺
1
收藏
上一篇:IT人的学习方法论-续集 关于英... 下一篇:TechEd2009