在同一个域内,成员服务器根据Active Directory中的用户账号,可以很容易地把资源分配给域内的用户。但一个域的作用范围毕竟有限,有些企业会用到多个域,那么在多域环境下,我们该如何进行资源的跨域分配呢?也就是说,我们该如何把A域的资源分配给B域的用户呢?一般来说,我们有两种选择,一种是使用镜像账户。也就是说,我们可以在A域和B域内各自创建一个用户名和口令都完全相同的用户账户,然后在B域把资源分配给这个账户后,A域内的镜像账户就可以访问B域内的资源了。 镜像账户的方法显然不是一个好的选择,至少账户的重复建设就很让管理员头疼。资源跨域分配的主流方法还是创建域信任关系,在两个域之间创建了信任关系后,资源的跨域分配就非常容易了。域信任关系是有方向性的,如果A域信任B域,那么A域的资源可以分配给B域的用户;但B域的资源并不能分配给A域的用户,如果想达到这个目的,需要让B域信任A域才可以。
如果A域信任了B域,那么A域的域控制器将把B域的用户账号复制到自己的Active Directory中,这样A域内的资源就可以分配给B域的用户了。从这个过程来看,A域信任B域首先需要征得B域的同意,因为A域信任B域需要先从B域索取资源。这点和我们习惯性的理解不同,信任关系的主动权掌握在被信任域手中而不是信任域。
A域信任B域,意味着A域的资源有分配给B域用户的可能性,但并非必然性!如果不进行资源分配,B域的用户无法获得任何资源!有些朋友误以为只要两个域之间存在信任关系,被信任域的用户就一定可以无条件地获得信任域内的所有资源,这个理解是错误的。我刚工作时在一家港资企业担任网络管理工作,企业的香港公司是一个域,深圳公司也是一个域。有一次我们需要把两家公司的Exchange服务器进行站点连接,这个操作需要两个域建立信任关系,但当时一位老工程师坚决不同意建立信任关系。他的理由是只要建立信任关系,香港公司的资料就全被深圳公司的员工看到了。这个理由很山寨,很明显对域信任关系的理解有些是是而非。我通过一个实验纠正了他的错误概念,事实证明,深圳公司和香港公司建立了域信任关系后,安全性并没有因此降低。
在NT4的域时代,信任关系是不具有传递性的。也就是说如果A域信任B域,B域信任C域,那么A域和C域没有任何关系。如果信任关系有传递性,那么我们就可以推导出A域是信任C域的。信任关系没有传递性极大地降低了灵活性,你可以想象一下如果70个域都要建立完全信任关系,那么需要多么大的工作量。而且这种牺牲灵活性的做法也没有获得安全上的补偿,因此微软在Win2000发布时,允许在域树和域林内进行信任关系的传递,在Win2003中更是允许在域林之间进行信任关系的传递。
参考:http://yuelei.blog.51cto.com/202879/175728