⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 202003.htm

📁 探索Windows 2000发展策略以及中介层技术设计的基本概念
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<html><body><span  id=Layer1><a name=202003><font color=#3e70d7 face=arial size=5><b>了解Active Directory</span><span  id=Layer2></b></font><p><font size=2 color=#3c3c3c face=arial>Active Directory是建构在LDAP之上。LDAP标准并没有定义一个完整的解决方案,因此会有很多例外情况发生。Active Directory仍旧遵照LDAP的标准来命名、组织,或存取储存的资料。因此,了解Active Directory需要先了解标准的LDAP。</span><span  id=Layer3></font></p><p><font size=2 color=#3c3c3c face=arial>Active Directory是以LDAP为基础的</span><span  id=Layer4></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>Active Directory是以LDAP为基础的</span><span  id=Layer5></font></p><hr><p><font size=2 color=#3c3c3c face=arial>Active Directory实作了定义在RFC 1777 的LDAP 2 版本,和RFC 2251 LDAP 3 版本的标准。这些文件中只定义了客户端如何存取目录的资料。不过定义客户端如何存取一个目录则需要指明这些客户端该如何命名储存在目录中的资讯。这将需指明可以储存那些类别的资讯,以及资讯的结构。以下将作简短的描述。</span><span  id=Layer6></font></p><p><font size=2 color=#3c3c3c face=arial>首先要注意:因为LDAP是由X.500衍生的,它使用早期定义的标准和命名规则。若它们困扰你,使用者可能也会怪罪X.500。「标准」向来总是个好坏参半的事。</span><span  id=Layer7></font></p><font color=#3e72d7 face=arial size=4><b>组织资讯</span><span  id=Layer8></b></font><p><font size=2 color=#3c3c3c face=arial>储存在LDAP资料库的资讯必须组织成阶层。这个阶层是由一些物件组成的。如图2-3所示,目录物件可以是一个容器(container),其下也可以包含其它物件,最底层物件之下则无法包含其它物件。</span><span  id=Layer9></font></p><p><font size=2 color=#3c3c3c face=arial>Active Directory项目被视为物件</span><span  id=Layer10></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>Active Directory项目被视为物件</span><span  id=Layer11></font></p><hr><p><font size=2 color=#3c3c3c face=arial>不要把目录物件和COM物件、C++物件或其它任何的物件搞混了。在Active Directory中的物件并不是真正的物件。传统的物件包含资料,没有method-不管是好是坏,「物件」这个名词已成为常用的术语。</span><span  id=Layer12></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b>附注 </b></font><p><font size=2 color=#3c3c3c face=arial>不要把目录物件和COM物件、C++物件或其它任何的物件搞混了。在Active Directory中的物件并不是真正的物件。传统的物件包含资料,没有method-不管是好是坏,「物件」这个名词已成为常用的术语。</span><span  id=Layer13></font></p><hr><p><font size=2 color=#3c3c3c face=arial>每个容器与物件最底层其实都是由某些物件类别而来的,物件类别决定了物件包含的属性(attribute,也称为property)。物件类别的定义中可以指定强制性或选择性的属性,因此物件中特定类别的资讯型态可能会有一些不同。不管它的类别是哪一种,每个物件都是由许多属性组成,每个属性包含一或多个同一型态的值。如图2-4所示,一个属性可以是单一值,或多重值。一个单一值属性可能包含你的名称,而一个多重值的属性可能包含你的电话号码清单。每个属性被指定一个特定的物件识别码,它是由某些机构发行的一个全域唯一的值。Microsoft可以配置物件识别码,成为许多不同国家的国际标准。在Windows 2000  resource kit中有一个工具可用来建立自己的物件识别码。</span><span  id=Layer14></font></p><p><font size=2 color=#3c3c3c face=arial>每个物件是由某些物件类别而来的,物件类别定义了物件包含的属性</span><span  id=Layer15></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>每个物件是由某些物件类别而来的,物件类别定义了物件包含的属性</span><span  id=Layer16></font></p><hr><br><center><a target=_new href=imagesh/2-3.gif><img border=0 src='imagesl/2-3.gif'></a></center></span><span  id=Layer17><center><table border=0 ><td align=center><font color=#3c3c3c face=arial size=2><font size=2 face=arial color=#3e80d7><b>&nbsp;图2-3</span><span  id=Layer18>&nbsp;</b></font>LDAP资料库中的每个物件不是一个容器,就是一个物件底层。</span><span  id=Layer19></td></table></font></center><br><center><a target=_new href=imagesh/2-4.gif><img border=0 src='imagesl/2-4.gif'></a></center></span><span  id=Layer20><center><table border=0 ><td align=center><font color=#3c3c3c face=arial size=2><font size=2 face=arial color=#3e80d7><b>&nbsp;图2-4</span><span  id=Layer21>&nbsp;</b></font>每个物件包含某些属性,属性可能是单一值,也可能有多个值。</span><span  id=Layer22></td></table></font></center><p><font size=2 color=#3c3c3c face=arial>定义哪些资料可以储存在特定的资料库,以及在这些资料间建立关系之规则称为结构描述(schema)。Active Directory结构描述定义成一组物件类别与属性型态。事实上,组成结构描述的物件类别与属性型态也是储存在Active Directory之中,让这些定义能够更简单地浏览。结构描述也可以修改,允许公司组织、软体厂商或其它人来增加自己的物件类别与属性型态。这是相当有用的,不过要小心,自由地修改结构描述可能会产生问题,你可能想要避免重复新增物件类别与属性型态,一个目录建议你降低重复性,而不鼓励之。</span><span  id=Layer23></font></p><p><font size=2 color=#3c3c3c face=arial>Active Directory结构描述是一组物件类别和属性型态</span><span  id=Layer24></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>Active Directory结构描述是一组物件类别和属性型态</span><span  id=Layer25></font></p><hr><p><font size=2 color=#3c3c3c face=arial>随Active Directory出货的标准结构描述并不是个简单的东西:它定义了许多物件类别与属性型态。了解它包含的内容并不难,只要遵守Active Directory结构描述所定义的某些物件类别,和它们的属性范例就可以了。</span><span  id=Layer26></font></p><p><font size=2 color=#3c3c3c face=arial><font size=2 face=arial color=#3e80d7><b>&nbsp;User</span><span  id=Layer27>&nbsp;</b></font>包含网域中特定使用者的资料。</span><span  id=Layer28><font size=2 face=arial color=#3e80d7><b>&nbsp;User</span><span  id=Layer29>&nbsp;</b></font>类别包含的属性有:</span><span  id=Layer30></font></p><font size=2 color=#3c3c3c face=arial><ul><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Common-Name</span><span  id=Layer31>&nbsp;</b></font>使用者的名称。</span><span  id=Layer32></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;User-Principal-Name或UPN</span><span  id=Layer33>&nbsp;</b></font>用来登入Windows 2000 网域的名称。</span><span  id=Layer34></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Address</span><span  id=Layer35>&nbsp;</b></font>使用者的邮寄地址。</span><span  id=Layer36></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Telephone-Number</span><span  id=Layer37>&nbsp;</b></font>这个使用者电话号码清单。</span><span  id=Layer38></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;E-mail-Addresses</span><span  id=Layer39>&nbsp;</b></font>这个使用者的电子邮件清单。</span><span  id=Layer40></li><br></font></ul></font><p><font size=2 color=#3c3c3c face=arial><font size=2 face=arial color=#3e80d7><b>&nbsp;Computer</span><span  id=Layer41>&nbsp;</b></font>包含网域中特定电脑的资讯。</span><span  id=Layer42><font size=2 face=arial color=#3e80d7><b>&nbsp;Computer</span><span  id=Layer43>&nbsp;</b></font>类别的属性包含:</span><span  id=Layer44></font></p><font size=2 color=#3c3c3c face=arial><ul><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Common-Name</span><span  id=Layer45>&nbsp;</b></font>机器的名称。</span><span  id=Layer46></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Operating-System</span><span  id=Layer47>&nbsp;</b></font>举例来说,「Windows 2000」。</span><span  id=Layer48></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Operating-System-Service-Pack</span><span  id=Layer49>&nbsp;</b></font>举例来说,「SP2」。</span><span  id=Layer50></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Machine-DNS-Name</span><span  id=Layer51>&nbsp;</b></font>举例来说,「diana.qwickbank.com」。</span><span  id=Layer52></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Machine-Role</span><span  id=Layer53>&nbsp;</b></font>工作站、伺服器或网域控制主机。</span><span  id=Layer54></li><br></font></ul></font><p><font size=2 color=#3c3c3c face=arial>Print-Queue包含印表机的资讯。Print-Queue类别属性包含:</span><span  id=Layer55></font></p><font size=2 color=#3c3c3c face=arial><ul><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Printer-Name</span><span  id=Layer56>&nbsp;</b></font>印表机显示的名称。</span><span  id=Layer57></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Location</span><span  id=Layer58>&nbsp;</b></font>印表机实际所在位置。</span><span  id=Layer59></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Print-Status</span><span  id=Layer60>&nbsp;</b></font>印表机目前列印的状态。</span><span  id=Layer61></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Print-Language</span><span  id=Layer62>&nbsp;</b></font>举例来说,「PostScript」。</span><span  id=Layer63></li><br></font></ul></font><p><font size=2 color=#3c3c3c face=arial><font size=2 face=arial color=#3e80d7><b>&nbsp;组织单位</span><span  id=Layer64>&nbsp;</b></font>(</span><span  id=Layer65><font size=2 face=arial color=#3e80d7><b>&nbsp;Organizational Unit</span><span  id=Layer66>&nbsp;</b></font>),通常称为OU。这个类别的物件都是容器(container)用来组织逻辑上的Active Directory网域,以便容易管理。OU相当地重要,我们将在本章稍後讨论,它的属性包含:</span><span  id=Layer67></font></p><font size=2 color=#3c3c3c face=arial><ul><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Organizational-Unit-Name</span><span  id=Layer68>&nbsp;</b></font>这个OU的名称。</span><span  id=Layer69></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Postal-Address</span><span  id=Layer70>&nbsp;</b></font>这个OU的邮寄地址。</span><span  id=Layer71></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Telephone-Number</span><span  id=Layer72>&nbsp;</b></font>这个OU的一个或多个电话号码。</span><span  id=Layer73></li><br></font></ul></font><p><font size=2 color=#3c3c3c face=arial>在Active Directory中有许多OU(或许是大部份OU)都没有对应到实际的组织,因此它们通常没有地址或电话号码。OU通常会塑造成特定的目录阶层以进行管理,而不是以公司组织实际的结构来进行管理。</span><span  id=Layer74></font></p><font color=#3e72d7 face=arial size=4><b>命名资讯</span><span  id=Layer75></b></font><p><font size=2 color=#3c3c3c face=arial>LDAP只定义客户端如何存取一个目录资料库,不过这并不是件容易的事,这需要指明资讯在资料库中要如何定义。同样也需要指明客户端应该如何辨识这些资讯。换句话说,LDAP定义目录中的物件是如何命名的。</span><span  id=Layer76></font></p><p><font size=2 color=#3c3c3c face=arial>储存在Windows 2000 网域目录资料库中的资讯组织成阶层状。为一个目录中特定的物件命名,需要指定物件存在的网域,以及在这个网域阶层中物件的名称。DNS名称可用来识别一个网域,不过若要识别网域中个别的物件则得使用LDAP名称。</span><span  id=Layer77></font></p><p><font size=2 color=#3c3c3c face=arial>LDAP名称是阶层状的</span><span  id=Layer78></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>LDAP名称是阶层状的</span><span  id=Layer79></font></p><hr><p><font size=2 color=#3c3c3c face=arial>回顾一下每个物件包含一些属性。若要命名一个物件,则其中一个属性得指定为物件的relative distinguished name ( RDN)。举例来说,在组织单位类别中的物件,它的Organizational-Unit-Name属性值便是物件的RDN。User类别的物件,其Common-Name属性也可以选用RDN。</span><span  id=Layer80></font></p><p><font size=2 color=#3c3c3c face=arial>在某个容器之下同一等级的RDN必需是唯一的。换句话说,出现在另一个物件之下的每个物件之RDN,不可以和它的兄弟物件的RDN一样。正因如此,一个特定网域中物件的命名就可能是唯一的。接着只要将阶层中物件的RDN名称和此物件上层所有物件的RDN串连在一起就可以了。这样的结果称为distinguished name。在每个Active Directory网域中的每个物件都有一个distinguished name。找寻Active Directory物件最快速的方式(也是唯一的方式)便是将这个名称传送到Active Directory伺服器。举例来说,图2-5展示us.qwickbank.com Windows 2000网域部份的命名结构。在根之下有两个Organizational Unit类别物件,每一个组织单位基於Organizational-Unit-Name属性的值来指定RDN名称。这个属性的英文缩写为OU,因此QwickBank的会计部门物件的RDN便是OU=acct,而业务部门的物件之RDN则为OU=sales。</span><span  id=Layer81></font></p><p><font size=2 color=#3c3c3c face=arial>Distinguished name 可用来识别目录中的物件</span><span  id=Layer82></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>Distinguished name 可用来识别目录中的物件</span><span  id=Layer83></font></p><hr><p><font size=2 color=#3c3c3c face=arial>Organizational-Unit类别的物件都是容器,因此在这些物件之下可以有其它的物件。在图2-5的网域中,会计部门与业务部门都有自己的电脑和使用者,因此每个部门都有一个容器以储存这两个类别。在这个范例中,两个部门中的这些物件名称都是相同的,两者都是OU,不过这并不是必要的。在这些容器之下是许多类别的底层物件,每个物件都有一个RDN。业务部门的使用者有Li、Smith、Catignani,这些使用者都有一个User类别的物件。这些物件的RDN是使用Common-Name属性的值,因此Smith物件的RDN便是CN=smith。</span><span  id=Layer84></font></p><a name="2-5"></span><span  id=Layer85><br><center><a target=_new href=imagesh/2-5.gif><img border=0 src='imagesl/2-5.gif'></a></center></span><span  id=Layer86><center><table border=0 ><td align=center><font color=#3c3c3c face=arial size=2><font size=2 face=arial color=#3e80d7><b>&nbsp;图2-5</span><span  id=Layer87>&nbsp;</b></font>每个网域包含了许多物件组成的阶层。</span><span  id=Layer88></td></table></font></center><p><font size=2 color=#3c3c3c face=arial>若要识别网域中唯一的Smith物件,客户端必需提供物件的distinguished name。就之前所描述,形成这个名字很容易:只要将Smith物件的RDN,和树状结构中此物件之上的container物件串连起来就可以了。唯一的挑战是网域的名称该如何命名,因为网域得使用DNS名称而非LDAP名称。Microsoft选择定义在RFC 2247的解决方案:将DNS名称切割成二或多个属性,这些属性的资料型态为Domain Component,英文缩写为DC。举例来说,「us.qwickbank.com」网域的LDAP样式名称为DC=us, DC=qwickbank,DC=com。</span><span  id=Layer89></font></p><p><font size=2 color=#3c3c3c face=arial>一个DNS名称可以以LDAP命名风格来表示</span><span  id=Layer90></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>一个DNS名称可以以LDAP命名风格来表示</span><span  id=Layer91></font></p><hr><p><font size=2 color=#3c3c3c face=arial>因此,在us.qwickbank.com网域的Smith物件之distinguished name为CN=smith,OU=users, OU=sales, DC=us, DC=qwickbank, DC=com。若你将这个名称传递到Active Directory客户端,它会将最後叁个元素转成DNS名称us.qwickbank.com,然後使用这个名称来找寻此网域的网域控制主机。在此台机器上的LDAP伺服器便可以用部份的名称来找到Smith的物件。</span><span  id=Layer92></font></p><p><font size=2 color=#3c3c3c face=arial>这个命名结构描述(schema)也有变形。举例来说,Active Directory允许使用定义在RFC 2255的LDAP URL。上述distinguished name的LDAP URL为LDAP://CN=smith, OU=users, OU=receivables,DC=us, DC=qwickbank, DC=com。最後一点值得注意的是,因为Windows 2000 网域拥有DNS名称,因此Active Directory就可以用在Internet上以便於识别。举例来说,一家公司的LDAP客户端可以使用一个distinguished name或LDAP URL来找寻或存取在其它公司Active Directory中的物件。当然,若要能正确运作需要适当地设定安全性。一旦这个工作完成,Active Directory名称就可以全域地使用了。</span><span  id=Layer93></font></p><p><font size=2 color=#3c3c3c face=arial>Active Directory名称可以在Internet上使用</span><span  id=Layer94></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>Active Directory名称可以在Internet上使用</span><span  id=Layer95></font></p><hr><font color=#3e72d7 face=arial size=4><b>存取资讯</span><span  id=Layer96></b></font><p><font size=2 color=#3c3c3c face=arial>LDAP允许客户端连结到目录,存取储存在目录资料库中的资讯,然後释放掉连线。这个协定定义了一些操作:</span><span  id=Layer97></font></p><font size=2 color=#3c3c3c face=arial><ul><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Bind</span><span  id=Layer98>&nbsp;</b></font>建立一条到LDAP伺服器的连线。</span><span  id=Layer99></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Search</span><span  id=Layer100>&nbsp;</b></font>回传符合查询条件的属性值。</span><span  id=Layer101></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Modify</span><span  id=Layer102>&nbsp;</b></font>更改物件属性的值。</span><span  id=Layer103></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Delete</span><span  id=Layer104>&nbsp;</b></font>删除一个既存的物件。</span><span  id=Layer105></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Add</span><span  id=Layer106>&nbsp;</b></font>新增一个物件。</span><span  id=Layer107></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;Unbind</span><span  id=Layer108>&nbsp;</b></font>释放LDAP伺服器的连线。</span><span  id=Layer109></li><br></font></ul></font><p><font size=2 color=#3c3c3c face=arial>LDAP定义成一组操作,每个操作有一些参数</span><span  id=Layer110></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>LDAP定义成一组操作,每个操作有一些参数</span><span  id=Layer111></font></p><hr><p><font size=2 color=#3c3c3c face=arial>当一个应用程式希望寻找Active Directory中的某些东西时,应用程式所在机器上的LDAP客户端便传送一个Bind,要求到Active Directory伺服器(假设已找到适当的网域控制主机)。接下来,LDAP客户端便发行一个Search要求。每一个Search可以指定许多参数,包含:</span><span  id=Layer112></font></p><font size=2 color=#3c3c3c face=arial><ul><font size=2 face=arial color=#3c3c3c><li>开始搜寻的物件名称。</span><span  id=Layer113></li><br></font><font size=2 face=arial color=#3c3c3c><li>搜寻的深度:只搜寻这个物件,此物件所在等级之下的所有物件,或这个物件之下整个树状结构。</span><span  id=Layer114></li><br></font><font size=2 face=arial color=#3c3c3c><li>过滤条件,指明要搜寻的资讯。(过滤条件可以是一个或多个属性的值。)</span><span  id=Layer115></li><br></font><font size=2 face=arial color=#3c3c3c><li>属性型态的清单,它的值是由符合查询条件的物件回传的。</span><span  id=Layer116></li><br></font><font size=2 face=arial color=#3c3c3c><li>搜寻最多能花费的时间。</span><span  id=Layer117></li><br></font></ul></font><p><font size=2 color=#3c3c3c face=arial>若要查询资讯,客户端可以使用LDAP Search搜寻</span><span  id=Layer118></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>若要查询资讯,客户端可以使用LDAP Search搜寻</span><span  id=Layer119></font></p><hr><p><font size=2 color=#3c3c3c face=arial>在图2-6的范例中,客户端要求查询Sales OU之下的所有物件。搜寻的过滤条件中指定只有Common-Name属性值为「Smith」的物件才符合这个查询,而回传符合条件的物件之Address与Telephone-Number清单。搜寻完成後,客户端有可能进行其它操作,或传送一个Unbind要求释放掉LDAP伺服器连线。</span><span  id=Layer120></font></p><br><center><a target=_new href=imagesh/2-6.gif><img border=0 src='imagesl/2-6.gif'></a></center></span><span  id=Layer121><center><table border=0 ><td align=center><font color=#3c3c3c face=arial size=2><font size=2 face=arial color=#3e80d7><b>&nbsp;图2-6</span><span  id=Layer122>&nbsp;</b></font>LDAP Search范例,指明欲搜寻的地方、需符合的条件等等。</span><span  id=Layer123></td></table></font></center><font color=#3e72d7 face=arial size=4><b>控制资讯的存取</span><span  id=Layer124></b></font><p><font size=2 color=#3c3c3c face=arial>将所有类型的资讯,包含使用者帐户,放到一个资料库中,会让此资料库成为骇客攻击的目标。因此Active Directory也定义了验证与授权机制来保护它包含的资料。对於验证来说,LDAP版本2只支援简单的密码,不过LDAP版本3则允许使用验证协定来协商。当然Active Directory预设的协定是Kerberos。</span><span  id=Layer125></font></p><p><font size=2 color=#3c3c3c face=arial>Active Directory向来使用Kerberos进行验证</span><span  id=Layer126></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>Active Directory向来使用Kerberos进行验证</span><span  id=Layer127></font></p><hr><p><font size=2 color=#3c3c3c face=arial>一旦一个网域控制主机知道和它对谈者的身份後,也就是说客户端的身份已验证通过,网域控制主机便可以决定客户端对目录中物件的存取权限。换句话说,它必须决定授权。Active Directory使用Windows 2000 存取控制清单(access control list,ACL)来达到这个目的。一个ACL是一份授权使用者与使用者群组的清单,而Active Directory资料库中每一个物件都有一个存取清单。当客户端试着存取一个物件时,Active Directory便检查物件的ACL以便判断客户端的要求是否有取得授权。Active Directory也在每个物件的每一个属性上指派一个ACL,允许严密的存取控制。预设目录中新建立的物件会继承它父物件的ACL,因此不需要明确地替每一个物件设定权限。(这是目录阶层为何在设计时要依目录管理的方式来组织,而不是以公司实际的结构来组织的主要理由。)管理Active Directory物件与属性的ACL会让系统管理者感到厌烦,不过它们仍旧是目录服务企业类别(enterprise-class)的基本概念。</span><span  id=Layer128></font></p><p><font size=2 color=#3c3c3c face=arial>物件与属性都拥有ACL</span><span  id=Layer129></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>物件与属性都拥有ACL</span><span  id=Layer130></font></p><hr><font color=#3e72d7 face=arial size=4><b>分类资讯</span><span  id=Layer131></b></font><p><font size=2 color=#3c3c3c face=arial>整体而论,Active Directory不过是个标准的LDAP伺服器。不过就我们所见,LDAP只定义了客户端该如何存取目录,因此只有LDAP标准并不足以建立一个有效的目录服务。在Windows 2000,Active Directory包含许多LDAP与其它厂商未定义的东西。其中最重要的是Active Directory分类储存资料的方法。</span><span  id=Layer132></font></p><p><font size=2 color=#3c3c3c face=arial>Active Directory将目录资料库中的物件细分为叁种不同的型态。如图2-7所示,每个Active Directory网域的资料分为叁类,包含:</span><span  id=Layer133></font></p><font size=2 color=#3c3c3c face=arial><ul><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;网域资料</span><span  id=Layer134>&nbsp;</b></font>包含网域的使用者资料,如OU、user与Computer物件。举例来说,</span><span  id=Layer135>&nbsp;<a href=" #2-5" target=_new>图2-5</span><span  id=Layer136></a>&nbsp;显示的所有物件都是网域资料。Active Directory的一般使用者看不到这些资料。对大部份使用者,网域资料就是Active Directory包含的所有资料。</span><span  id=Layer137></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;结构描述资料</span><span  id=Layer138>&nbsp;</b></font>包含网域的结构描述资料,也就是说物件中物件类别与属性型态的说明。</span><span  id=Layer139></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b>&nbsp;组态资料</span><span  id=Layer140>&nbsp;</b></font>包含和这个网域有关连的其他网域之资料。由於网域可以组织成树状架构或森林状架构,因此和这个网域有关的所有网域之清单便保存在此处。这类资料也包含相关网域的网域控制主机之所在位置、这些网域之间的安全性关系...等等。</span><span  id=Layer141></li><br></font></ul></font><p><font size=2 color=#3c3c3c face=arial>每个Active Directory资料库包含叁种型态的资料</span><span  id=Layer142></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>每个Active Directory资料库包含叁种型态的资料</span><span  id=Layer143></font></p><hr><p><font size=2 color=#3c3c3c face=arial>Active Directory使用的资料库管理系统是Extended Storage Engine (ESE),它也应用在Exchange以及Microsoft其它产品上。</span><span  id=Layer144></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b>附注 </b></font><p><font size=2 color=#3c3c3c face=arial>Active Directory使用的资料库管理系统是Extended Storage Engine (ESE),它也应用在Exchange以及Microsoft其它产品上。</span><span  id=Layer145></font></p><hr><br><center><a target=_new href=imagesh/2-7.gif><img border=0 src='imagesl/2-7.gif'></a></center></span><span  id=Layer146><center><table border=0 ><td align=center><font color=#3c3c3c face=arial size=2><font size=2 face=arial color=#3e80d7><b>&nbsp;图2-7</span><span  id=Layer147>&nbsp;</b></font>每个网域控制主机包含叁种类型的资料。</span><span  id=Layer148></td></table></font></center><p><font size=2 color=#3c3c3c face=arial>这叁类资料其实也不过是一般的目录物件,这些物件的物件类别与属性型态则受限於Schema中的定义。这叁类资料的不同点是很重要的,稍後我们将会探讨。</span><span  id=Layer149></font></p><font color=#3e72d7 face=arial size=4><b>找寻资讯:索引与Global Catalog</span><span  id=Layer150></b></font><p><font size=2 color=#3c3c3c face=arial>若客户端知道物件存在於哪一个网域,也知道物件的distinguished name,那麽使用LDAP来存取便很容易。不过若客户端知道要搜寻哪一个网域,也知道想找寻的物件之一两个属性,但不知道物件的distinguished name,这时该如何呢?其中一个选项便是使用LDAP来执行搜寻,指定要从树状结构的哪个地方开始搜寻,欲搜寻的属性...等等。不过在大小不确定的网域中,进行这类的搜寻有一些风险,因为有可能需要检查大量的物件,所以搜寻的速度可能会很慢。</span><span  id=Layer151></font></p><p><font size=2 color=#3c3c3c face=arial>不过,快速地资料搜寻通常不是个新鲜的问题。一个搜寻资料库或物件众所周知、又有效的方法便是为欲搜寻的属性建立索引。只要你欲搜寻的属性值在这个索引中,则要从中找寻物件就很快速、简单了。为了加快搜寻的速度,Active Directory会将经常查询的属性自动进行索引。只要索引存在,搜寻索引的值就会快一些,因为搜寻时只会找索引,不需要搜寻整个网域或网域中的子树。</span><span  id=Layer152></font></p><p><font size=2 color=#3c3c3c face=arial>每个Active Directory资料库包含叁种型态的资料</span><span  id=Layer153></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>每个Active Directory资料库包含叁种型态的资料</span><span  id=Layer154></font></p><hr><p><font size=2 color=#3c3c3c face=arial>不过还有个更困难的问题:假设客户端不知道要搜寻哪一个属性。这个无知的客户端不知道欲搜寻的物件之distinguished name,也不知道物件在哪一个网域。即使属性已编列索引,客户端搜寻每个网域的结果可能会花费许多不合理的时间。</span><span  id=Layer155></font></p><p><font size=2 color=#3c3c3c face=arial>为了要解决这个问题,Active Directory提供一个global catalog(GC)。GC包含网域中每一个群组内物件的复本。不过复本中只包含物件部份的资料,GC中物件的复本只包含一些属性值,这些值是使用这个网域的客户端最感兴趣的。Microsoft定义许多标准属性,这些属性都包含在GC,当然系统管理员可以在GC中定义属性。</span><span  id=Layer156></font></p><p><font size=2 color=#3c3c3c face=arial>Global catalog允许搜寻储存在一个或多个网域中的物件之属性</span><span  id=Layer157></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>Global catalog允许搜寻储存在一个或多个网域中的物件之属性</span><span  id=Layer158></font></p><hr><p><font size=2 color=#3c3c3c face=arial>图2-8展示GC运作的情形。在图中us.qwickbank.com与europe.qwickbank.com两个网域共享一个单独的GC。若客户端发行一个查询以「smith」这个值,找寻一个索引的属性,则便搜寻GC以找到这个属性值。若在GC中找到这个值,便可以在正确的网域中直接存取这个物件,这是因为CG中包含了物件的distinguished name。</span><span  id=Layer159></font></p><br><center><a target=_new href=imagesh/2-8.gif><img border=0 src='imagesl/2-8.gif'></a></center></span><span  id=Layer160><center><table border=0 ><td align=center><font color=#3c3c3c face=arial size=2><font size=2 face=arial color=#3e80d7><b>&nbsp;图2-8</span><span  id=Layer161>&nbsp;</b></font>GC可以对多个网域的资讯索引。</span><span  id=Layer162></td></table></font></center><p><font size=2 color=#3c3c3c face=arial>GC中的资讯是储存在网域中一或多个网域控制主机上,并非每一个网域都需要一个复本。(包含这个复本的网域控制主机有时被称为global catalog伺服器。)事实上,没有另一个GC资料库。GC的资讯是保存在一个档案上,这个档案包含Active Directory资料库其馀的资讯。</span><span  id=Layer163></font></p><p><font size=2 color=#3c3c3c face=arial>下面是GC另一个有趣的应用方法:因为每个物件都有一个distinguished name,若知道它们的名称,你永远都可以存取到某些特定的物件。不过distinguished name可能会改变,有时是你无法控制的。举例来说,假设某些系统管理者决定更改一个OU的名称,而这个OU位在us.qwickbank.com网域中Smith 的User物件之上。Smith物件之distinguished name现在也跟着改变了,所以任何使用旧名称的软体将会再也找不到Smith物件。不过若使用GC,即使物件的distinguished name改变,也能可靠地找到特定的物件。这个机制是依赖於这个事实:在Active Directory中每个物件在建立时都指定一个全球唯一识别码(GUID),储存在物件中的GUID是不会改变的。更重要的是,这个GUID在GC中都已编列索引了。若不管物件的distinguished name是否会改变都要能回传特定的物件,客户端可以要求取得物件的GUID。当客户端在GC中搜寻GUID时,它永远可以找到想要的物件。</span><span  id=Layer164></font></p><p><font size=2 color=#3c3c3c face=arial>每个物件都有一个不变的GUID</span><span  id=Layer165></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>每个物件都有一个不变的GUID</span><span  id=Layer166></font></p><hr><p><font size=2 color=#3c3c3c face=arial>GC另一个重要的应用是在登入的过程。当你登入一个Windows 2000 的网域,便找到你在Active Directory中的User物件,它是你的密码,和其它资讯所在之处。若每次登入时都要找寻网域整个资料库,那就找不到快乐的Windows 2000使用者了。同时,若登入时需要提供你的distinguished name,你也不会高兴到哪儿。取代的做法,在Windows 2000登入时只需要输入User Principal Name (UPN)以辨识使用者和网域就可以了。举例来说,Smith的UPN为 smith@us.qwickbank.com 注意UPN可能会是使用者的电子邮件地址,这样会让生活简单些。)若使用这个UPN找寻Smith物件,则登入时会使用GC。如此便可以让你有效从家中的机器登入,也可以从网域中共享GC的机器上登入。</span><span  id=Layer167></font></p><p><font size=2 color=#3c3c3c face=arial>登入网域时需要依赖GC</span><span  id=Layer168></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>登入网域时需要依赖GC</span><span  id=Layer169></font></p><hr><p><font size=2 color=#3c3c3c face=arial>值得注意的事UPN在一组共享GC的网域中必须是唯一的。虽然us.qwickbank.com domain网域中具有相同RDN CN=smith的使用者物件可以存在於不同的OU,但只有一个使用者的UPN可以设定成 smith@us.qwickbank.com。</span><span  id=Layer170></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b>附注 </b></font><p><font size=2 color=#3c3c3c face=arial>值得注意的事UPN在一组共享GC的网域中必须是唯一的。虽然us.qwickbank.com domain网域中具有相同RDN CN=smith的使用者物件可以存在於不同的OU,但只有一个使用者的UPN可以设定成 smith@us.qwickbank.com。</span><span  id=Layer171></font></p><hr><p><font size=2 color=#3c3c3c face=arial>不过很明显,这样会造成一个问题:一个特定的GC要套用到哪一个网域中呢?使用一个全域的GC套用到所有Windows 2000 的网域并不实际,也存在安全性的风险,因此这不是我们要的答案。取代的做法,可从一个GC搜寻到的网域中之物件将会组成树状(Tree)结构的网域,或森林(Forest)结构的网域,这两个概念将於下描述。</span><span  id=Layer172></font></p><font color=#3e72d7 face=arial size=4><b>网域编组:树状结构(Tree)与森林结构(Forest)</span><span  id=Layer173></b></font><p><font size=2 color=#3c3c3c face=arial>若两个或多个Windows 2000网域的DNS名称是连续的,这些网域可以编组成一个树状结构的网域。在图2-9的范例中,qwickbank.com是网域树状结构的根网域,其下包含us.qwickbank.com与europe.qwickbank.com网域,或许还包含其它网域。网域树状结构中每个网域的DNS名称後面必须接着父网域的名称,允许网域形成连续的命名空间。</span><span  id=Layer174></font></p><p><font size=2 color=#3c3c3c face=arial>编组成一个树状结构的网域必需拥有连续的DNS名称</span><span  id=Layer175></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>编组成一个树状结构的网域必需拥有连续的DNS名称</span><span  id=Layer176></font></p><hr><br><center><a target=_new href=imagesh/2-9.gif><img border=0 src='imagesl/2-9.gif'></a></center></span><span  id=Layer177><center><table border=0 ><td align=center><font color=#3c3c3c face=arial size=2><font size=2 face=arial color=#3e80d7><b>&nbsp;图2-9</span><span  id=Layer178>&nbsp;</b></font>DNS名称连续的网域可以编组成一个网域树状结构。</span><span  id=Layer179></td></table></font></center><p><font size=2 color=#3c3c3c face=arial>网域树状结构是很有用的。举例来说,在网域树状结构的根发出搜寻的要求,然後指定搜寻整个网域树状结构,实际上会搜寻整个网域树状结构。网域树状结构同样地也让分散式安全性的管理变简单些,因为网域树状结构中每个网域和其它网域之间预设都使用双向信任关系。这些信任关系是采用Kerberos实作的,运作的过程将於</span><span  id=Layer180>&nbsp;<a target='_new' href=203.htm#>第叁章</span><span  id=Layer181></a>&nbsp;中讨论。</span><span  id=Layer182></font></p><p><font size=2 color=#3c3c3c face=arial>网域树状结构中的网域必需互相信任</span><span  id=Layer183></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>网域树状结构中的网域必需互相信任</span><span  id=Layer184></font></p><hr><p><font size=2 color=#3c3c3c face=arial>不过,若不适合将一个组织的所有网域编组成一个树状结构时该怎麽办?若想将许多个网域聚集在一起,但又想要保留不连续的DNS名称又该如何呢?在这个情况下,网域可以组织成网域森林结构(forest)。网域森林结构由一个或多个网域树状结构组成的,每个网域树状结构又包含一或多个网域。</span><span  id=Layer185></font></p><p><font size=2 color=#3c3c3c face=arial>和网域树状结构的不同点在於网域森林结构并没有一个公用的根网域。如图2-10所示,网域和组成森林结构的网域可以使用任何合法的名称。举例来说,假设QwickBank公司事实上是史丹佛大学的附属公司,在这个情况下,将两个组织编组成一个树状结构是有意义的。</span><span  id=Layer186></font></p><p><font size=2 color=#3c3c3c face=arial>组成树状结构的网域不需要连续的命名空间</span><span  id=Layer187></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>组成树状结构的网域不需要连续的命名空间</span><span  id=Layer188></font></p><hr><p><font size=2 color=#3c3c3c face=arial>编组成一个网域森林结构的意义到底是什麽呢?网域森林结构和一堆网域的不同点在哪里?若要了解这个答案则需要知道什麽是网域树状结构和网域森林结构,这两者都有相当明确的定义。更正式的说,网域树状结构(Domain tree)是由一组网域组成的,这些网域共享一个公用的GC,同时拥有相同的组态(Configuration)资料与结构描述(Schema)资料(这代表的意思是,它们必需相互信任,将於</span><span  id=Layer189>&nbsp;<a target='_new' href=203.htm#>下章</span><span  id=Layer190></a>&nbsp;描述。),每个网域的DNS命名空间都是连续的。森林结构是相当相似的:它是由一组网域或共享公用GC的网域树状结构组成,也有相同的组态资料与结构描述资料(也有信任关系),不过这些网域的名称不必是连续的。</span><span  id=Layer191></font></p><br><center><a target=_new href=imagesh/2-10.gif><img border=0 src='imagesl/2-10.gif'></a></center></span><span  id=Layer192><center><table border=0 ><td align=center><font color=#3c3c3c face=arial size=2><font size=2 face=arial color=#3e80d7><b>&nbsp;图2-10</span><span  id=Layer193>&nbsp;</b></font>网域和非连续DNS名称组成的网域树可以再编辑成一个森林结构。</span><span  id=Layer194></td></table></font></center><p><font size=2 color=#3c3c3c face=arial>更完整(也更抽象)的森林结构图解如图2-11。注意形成树状结构的网域只有两个,而叁个网域共享相同的GC,此叁者有相同的组态和结构描述资料。每个网域都有自己唯一的网域资料,并包含网域专属的资讯。</span><span  id=Layer195></font></p><p><font size=2 color=#3c3c3c face=arial>编组成树状或森林状结构的网域必须拥有一个公用的结构描述(sche-ma)</span><span  id=Layer196></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>编组成树状或森林状结构的网域必须拥有一个公用的结构描述(sche-ma)</span><span  id=Layer197></font></p><hr><br><center><a target=_new href=imagesh/2-11.gif><img border=0 src='imagesl/2-11.gif'></a></center></span><span  id=Layer198><center><table border=0 ><td align=center><font color=#3c3c3c face=arial size=2><font size=2 face=arial color=#3e80d7><b>&nbsp;图2-11</span><span  id=Layer199>&nbsp;</b></font>组成森林结构或树状结构的网域都有相同的组态资料与结构描述资料,共享公用的GC ,不过网域的资料是不同的。</span><span  id=Layer200></td></table></font></center><p><font size=2 color=#3c3c3c face=arial>实际上,当网域第一次建立时,公司组织可以决定哪些网域将要编组到同一个树状结构,或森林结构。在Active Directory第一次发行时,并没有标准的方式将两个独立的网域、网域树状结构或森林结构连结在一起。造成这个限制的其中一个理由是网域树状结构或森林结构中的所有网域都要有相同的结构描述,这对於许多既存的网域来说是很难办到的。</span><span  id=Layer201></font></p><font color=#3e72d7 face=arial size=4><b>复制</span><span  id=Layer202></b></font><p><font size=2 color=#3c3c3c face=arial>拥有一个公用、广泛使用的目录服务是很好的一件事情。不过广泛的使用也让这个服务成为不可或缺的;若取不到它所包含的资讯时,在分散式环境下人们的生活就变得困难些。因为 如此,Active Directory允许进行复制:储存多个网域控制主机的目录资料库并进行同步。复制目录资料可增进资料的适用性,以防范系统或网路错误的困扰,同时可以将客户端的要求分散到一或多台目录伺服器以增进效能。</span><span  id=Layer203></font></p><p><font size=2 color=#3c3c3c face=arial>复制可让目录服务适用性更好,更具延展性</span><span  id=Layer204></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>复制可让目录服务适用性更好,更具延展性</span><span  id=Layer205></font></p><hr><p><font size=2 color=#3c3c3c face=arial>虽然一个网域可能只有一台网域控制主机,不过这并不是个好主意;若这台机器故障了,所有的使用者与使用这个网域的应用程式都会感觉得到。在大部份的情况下,网域会有两个或更多的网域控制主机,每一台都有一份此网域的Active Directory资料库复本。客户端对网域资料所进行的变动都会自动地复制到网域中所有网域控制主机上的资料库复本。对结构描述资料与组态资料所做的变动则不限制於单一的网域。因为这些资讯在网域树状结构或森林结构中必须保持一致,在其中一个网域上变更结构描述与组态资料,将会自动复制到同一树状结构或森林结构中所有的网域。</span><span  id=Layer206></font></p><p><font size=2 color=#3c3c3c face=arial>一个网域定义一个复制的界限</span><span  id=Layer207></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>一个网域定义一个复制的界限</span><span  id=Layer208></font></p><hr><p><font size=2 color=#3c3c3c face=arial>在Windows NT 4版本与早期版本,每个网域包含了一台网域主控者(Primary Domain Controller,PDC)与零个或多个备份网域控制者(Backup Domain Controller,BDC)。在这个环境中,对Windows NT目录资料库所作的变动都会储存到PDC上的复本,然後再复制到网域中的BDC。Windows 2000 则更改这个架构,不再使用前版的single-master复制样式(只有一台网域控制主机保留资料库的复本),Active Directory使用multi-master复制机制。客户端可以更改任何网域控制主机上任何Active Directory资料库复本,变动的内容会自动更新到网域内所有网域控制主机上的目录资料库。在Windows 2000,已不再区分PDC与BDC。</span><span  id=Layer209></font></p><p><font size=2 color=#3c3c3c face=arial>Active Directory 使用multimas-ter复制</span><span  id=Layer210></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>Active Directory 使用multimas-ter复制</span><span  id=Layer211></font></p><hr><p><font size=2 color=#3c3c3c face=arial>有一些操作只能够在主要的网域控制主机上进行。举例来说,修改结构描述时,需要与指派为主要结构修改主机角色的网域控制主机连系。同样的,并非每一个网域控制主机都有GC资料库的复本,决定哪台主机要包含这些资料可透过管理介面来设定。</span><span  id=Layer212></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b>附注 </b></font><p><font size=2 color=#3c3c3c face=arial>有一些操作只能够在主要的网域控制主机上进行。举例来说,修改结构描述时,需要与指派为主要结构修改主机角色的网域控制主机连系。同样的,并非每一个网域控制主机都有GC资料库的复本,决定哪台主机要包含这些资料可透过管理介面来设定。</span><span  id=Layer213></font></p><hr><p><font size=2 color=#3c3c3c face=arial><font size=2 face=arial color=#3e80d7><b>&nbsp;站台</span><span  id=Layer214>&nbsp;</b></font>(</span><span  id=Layer215><font size=2 face=arial color=#3e80d7><b>&nbsp;Site</span><span  id=Layer216>&nbsp;</b></font>)  复制是个好主意,可增进执行效能与适用性。不过复制却带来了病态的边际效应。举例来说,想像一下一个大型的Windows 2000 网域涵盖范围为整个美国地区。当一个在纽约的客户端使用DNS来找寻网域控制主机,客户端就不应该被指派成在旧金山的伺服器。客户端需要能够存取临近的网域控制主机,因为大公司在一栋建  物内的频宽会比在一个国家内的频宽要多很多,在纽约办公室的网域控制主机之间经常性地相互复制,通常会比一台在纽约,一台在旧金山进行复制较有意义。为了让这类的行为得以实现,Active Directory使用站台(site)的概念。</span><span  id=Layer217></font></p><p><font size=2 color=#3c3c3c face=arial>一个站台就是特定群组的IP子网路,由系统管理者定义,代表地区的网路以快速可靠的连线连结在一起。举例来说,在同一建  物内一群10-Mbps乙太网路便是一个站台的最佳候选人,而在不同城市的两个乙太网路以慢速广域网路连结在一起就不适合了。图2-12展示这个概念,显示两个交互连结的站台。</span><span  id=Layer218></font></p><p><font size=2 color=#3c3c3c face=arial>一组 IP子网路外加好的连线,可编组成一个站台</span><span  id=Layer219></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>一组 IP子网路外加好的连线,可编组成一个站台</span><span  id=Layer220></font></p><hr><br><center><a target=_new href=imagesh/2-12.gif><img border=0 src='imagesl/2-12.gif'></a></center></span><span  id=Layer221><center><table border=0 ><td align=center><font color=#3c3c3c face=arial size=2><font size=2 face=arial color=#3e80d7><b>&nbsp;图2-12</span><span  id=Layer222>&nbsp;</b></font>一个站台是使用快速可靠连线连结起来的一群IP子网路。</span><span  id=Layer223></td></table></font></center><p><font size=2 color=#3c3c3c face=arial>一开始,你可能预计每个站台必须包含在一个单一的网域中。这并不是真的。Active Directory站台中逻辑上的结构(网域、OU...等等)与实体上的结构之间并不一定要有关联。一个网域可以切割成两个或多个站台,不过一个站台也可以横跨多个网域。站台是逻辑上的概念,它们可以以任何方式结合在一起,符合特定公司的需求。</span><span  id=Layer224></font></p><p><font size=2 color=#3c3c3c face=arial>站台可以跨网域边界</span><span  id=Layer225></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>站台可以跨网域边界</span><span  id=Layer226></font></p><hr><p><font size=2 color=#3c3c3c face=arial>聪明地定义一个站台是让Active Directory运作良好的主要关键。举例来说,客户端会自动地被指派到同一站台的网域控制主机(若存在的话),因此在站台中分配网域控制主机是很重要的。同样的,在一个站台中进行复制与在许多站台间进行复制,此两者的过程是很不相同的。站台内部复制的频率是不能够改变的,复制的动作约五分钟发生一次(不过有些变动会马上进行复制)。在站台之间的复制,换句话说,可由系统管理者进行排程,且通常较不常发生。因为这样的缘故,站台可以算是系统管理者在管理密集的复制流量之战场上最佳的武器。</span><span  id=Layer227></font></p><p><font size=2 color=#3c3c3c face=arial>另一个在战场上重要的武器是教育使用者。因为Active Directory可以从网域中任何一个地方存取,因此将它视为一般目的的资料库是没有意义的,它可以储存任何型态的资料。不过因为Active Directory提供了一般性的服务,它为大部份唯读性资讯的操作上进行了最佳化处理。当然使用者可以修改储存在Active Directory之中的资讯,不过资料库中不能够存放经常变动的资讯和相当庞大的资讯。这个理由相当的简单:对资料库进行的所有变动都必须复制到所有的资料库复本。经常变更储存在Active Directory资料库中大量的资讯将会造成密集的复制流量。当你要决定将哪些东西储存在Active Directory时要将这点牢记在心。将任何的目录服务,包含Active Directory视为一般用途的资料库并不会给人满意的结果。特别是切割成许多站台,以慢速连线链结的大型网域,不用怀疑,花时间减化复制流量是个好主意。</span><span  id=Layer228></font></p><p><font size=2 color=#3c3c3c face=arial>复制流量最小化是很重要的</span><span  id=Layer229></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>复制流量最小化是很重要的</span><span  id=Layer230></font></p><hr><p><font size=2 color=#3c3c3c face=arial><font size=2 face=arial color=#3e80d7><b>&nbsp;复制运作的情形</span><span  id=Layer231>&nbsp;</b></font>LDAP定义了客户端该如何存取目录服务,不过并未提及不同的目录伺服器之间如何对谈。</span><span  id=Layer232></font></p><p><font size=2 color=#3c3c3c face=arial>使用LDAP之外的协定来进行复制</span><span  id=Layer233></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>使用LDAP之外的协定来进行复制</span><span  id=Layer234></font></p><hr><p><font size=2 color=#3c3c3c face=arial>在今天这是真的。IETF目前正在定义以LDAP为基础的目录服务之复制标准。</span><span  id=Layer235></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b>附注 </b></font><p><font size=2 color=#3c3c3c face=arial>在今天这是真的。IETF目前正在定义以LDAP为基础的目录服务之复制标准。</span><span  id=Layer236></font></p><hr><p><font size=2 color=#3c3c3c face=arial>此外,Microsoft已定义自己的协定以达到复制的目的。如图2-13所示,一个Active Directory客户端使用LDAP来修改位於某台网域控制主机上的目录资料库,不过Active Directory使用其它的协定来进行复制的动作。虽然在某些情况下您可以使用Simple Mail Transfer Protocol (SMTP)这个协定,不过最主要的选择还是Microsoft以RPC为基础的协定,执行在TCP/IP之上。</span><span  id=Layer237></font></p><br><center><a target=_new href=imagesh/2-13.gif><img border=0 src='imagesl/2-13.gif'></a></center></span><span  id=Layer238><center><table border=0 ><td align=center><font color=#3c3c3c face=arial size=2><font size=2 face=arial color=#3e80d7><b>&nbsp;图2-13</span><span  id=Layer239>&nbsp;</b></font>客户端使用LDAP所做的变动是使用不同的协定进行复制的。</span><span  id=Layer240></td></table></font></center><p><font size=2 color=#3c3c3c face=arial>当一个客户端使用LDAP来更改位於任何Active Directory资料库复本中的物件时,存放资料库复本的网域控制主机会将新的值复制到网域中其它的网域控制主机。当然只有变动的属性才会复制过去,而不是复制整个资料库。在一个只有少数网域控制主机的网域上,每个网域控制主机都可以直接和其他主机沟通变动的情形。在一个有许多网域控制主机的网域上,则是由复制技术来决定变动的动作该如何繁殖的。每一项变动最後都会到达网域中的每一台网域控制主机上,不过不同的网域控制主机之间并不需要一个直接的连线。</span><span  id=Layer241></font></p><p><font size=2 color=#3c3c3c face=arial>每个网域都有一个复制的拓  </span><span  id=Layer242></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>每个网域都有一个复制的拓  </span><span  id=Layer243></font></p><hr><p><font size=2 color=#3c3c3c face=arial>Active Directory会自动在站台中所有的网域控制主机之间建立并维护复制的拓  ,若系统管理者愿意的话也可以自行设定。虽然站台之间的连结可以让系统管理者手动地建立,Active Directory仍旧会判断存在哪些复制的连线。同样的,在站台内间的复制流量是经过压缩的,而不同的站台之间的流量则没有经过压缩。因为Active Directory站台内的复制机制是特别为了在慢速连线上少数的复制流量而最佳化,所以花时间压缩、解压缩传输的资讯是有意义的。</span><span  id=Layer244></font></p><p><font size=2 color=#3c3c3c face=arial>站台内的复制应该比不同站台之间的复制更常发生</span><span  id=Layer245></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>站台内的复制应该比不同站台之间的复制更常发生</span><span  id=Layer246></font></p><hr><p><font size=2 color=#3c3c3c face=arial>不管站台如何应用,multi-master复制天生就比Windows NT 4的single-master方案要有较多的延展性;所有在进行变动资料的动作同时,不再需要到单一的网域控制主机。同样Multi-master复制要较为复杂些,这时,有个问题很明显的就浮现了:当两个不同的客户端同时更改不同复本的相同物件属性时会发生何事?哪一个变动的部份会赢呢?可以预期的答案是最後变动的部份会套用到所有的复本上。</span><span  id=Layer247></font></p><p><font size=2 color=#3c3c3c face=arial>复制是很重要的,因此值得深入探讨它是如何运作的。Active Directory使用一个整数计数变数,称Update Sequence Number (USN),取代时间戳记(timestamp)来追踪复制更新的情形。每一个网域控制主机维护一个USN,每当客户端更改网域控制主机的复本上某些物件的属性值时,便将更改过属性储存到目前的URN。</span><span  id=Layer248></font></p><p><font size=2 color=#3c3c3c face=arial>在某些网域控制主机上更改每一个属性都会让系统增加它的USN</span><span  id=Layer249></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>在某些网域控制主机上更改每一个属性都会让系统增加它的USN</span><span  id=Layer250></font></p><hr><p><font size=2 color=#3c3c3c face=arial>每个网域控制主机同样会追踪它从复制夥伴处接收到的最後一个USN。当复制的时间点到时,网域控制主机便询问每一个变动过的夥伴,看看它的USN是否比从夥伴处接收到的最後一个URN层级还要高,然後将变动的资料套用到复本中的物件上。</span><span  id=Layer251></font></p><p><font size=2 color=#3c3c3c face=arial>举例来说,想像一下两个网域控制主机X与Y相互为复制夥伴。如图2-14所示,假设网域控制主机X接收到变动a、b与c属性,然後将变动的内容指派到适当的USN。同时也假设,X从它的夥伴Y所知道的最後USN为113。网域控制主机Y已变更了p与q的值,并适当地指派每一个的USN,而最後从X接收到最後的USN为386。</span><span  id=Layer252></font></p><br><center><a target=_new href=imagesh/2-14.gif><img border=0 src='imagesl/2-14.gif'></a></center></span><span  id=Layer253><center><table border=0 ><td align=center><font color=#3c3c3c face=arial size=2><font size=2 face=arial color=#3e80d7><b>&nbsp;图2-14</span><span  id=Layer254>&nbsp;</b></font>网域控制主机X询问网域控制主机Y,从Y接收到最後的USN之後,所有的变动。</span><span  id=Layer255></td></table></font></center><p><font size=2 color=#3c3c3c face=arial>当复制的时间点到时,X询问Y所有变动的USN是否有大於113的值,而Y则传送变动的p与q属性来回应。同样地,如图2-15所示,Y询问X所有的变动是否存在有大於386的值,然後X回传属性a、b、c的新值。这个过程是很简单的,而结果是每个网域控制主机只取得自己需要的部份让自己的目录服务保持最新的状态。</span><span  id=Layer256></font></p><br><center><a target=_new href=imagesh/2-15.gif><img border=0 src='imagesl/2-15.gif'></a></center></span><span  id=Layer257><center><table border=0 ><td align=center><font color=#3c3c3c face=arial size=2><font size=2 face=arial color=#3e80d7><b>&nbsp;图2-15</span><span  id=Layer258>&nbsp;</b></font>网域控制主机Y询问网域控制主机X,Y自从从X接收到最後的USN後所有的变动资讯。</span><span  id=Layer259></td></table></font></center><font color=#3e72d7 face=arial size=4><b>群组</span><span  id=Layer260></b></font><p><font size=2 color=#3c3c3c face=arial>群组的概念是很直觉的:它不过就是使用者、电脑,以及其它群组的集合。当然群组也是很重要的,因为它们可以应用在ACL、群组原则(本章稍後描述),甚至是电子邮件清单。不过在Windows 2000,群组的概念并不简单,它们也和Windows NT 4中的群组有一些不同。</span><span  id=Layer261></font></p><p><font size=2 color=#3c3c3c face=arial>Windows 2000 定义两个类型的群组:发布群组(distribution group)与安全性群组(security group)。发布群组通常是用来定义电子邮件清单(它们无法应用在存取控制),因此发布群组将永远不会出现在ACL之中。不过安全性群组则是应用在存取控制上的,也可以搭配群组原则一起使用,我们将於下节讨论。这两类的群组都有特定的范围,Windows 2000 则定义了叁种类别:</span><span  id=Layer262></font></p><p><font size=2 color=#3c3c3c face=arial><font size=2 face=arial color=#3e80d7><b>&nbsp;万用</span><span  id=Layer263>&nbsp;</b></font>(</span><span  id=Layer264><font size=2 face=arial color=#3e80d7><b>&nbsp;universal</span><span  id=Layer265>&nbsp;</b></font>)、</span><span  id=Layer266><font size=2 face=arial color=#3e80d7><b>&nbsp;通用</span><span  id=Layer267>&nbsp;</b></font>(</span><span  id=Layer268><font size=2 face=arial color=#3e80d7><b>&nbsp;global</span><span  id=Layer269>&nbsp;</b></font>)与</span><span  id=Layer270><font size=2 face=arial color=#3e80d7><b>&nbsp;网域区域</span><span  id=Layer271>&nbsp;</b></font>(</span><span  id=Layer272><font size=2 face=arial color=#3e80d7><b>&nbsp;domain local</span><span  id=Layer273>&nbsp;</b></font>)。大多数情况下,这叁者每一个都与特定森林结构中的一个或多个网域相关。在这叁个不同范围内的任何群组都可以包含使用者群组和其它群组(这些不同类型的群组如何地相互套叠是很复杂的),不过重要性各有不同。</span><span  id=Layer274></font></p><p><font size=2 color=#3c3c3c face=arial>Windows 2000定义两类型群组和叁个群组范围</span><span  id=Layer275></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>Windows 2000定义两类型群组和叁个群组范围</span><span  id=Layer276></font></p><hr><p><font size=2 color=#3c3c3c face=arial>万用(universal)范围的群组,通常称为万用(universal)群组,它们是最简单的。一个万用群组的成员可以从任何特定森林结构中的任何网域而来,同时可以让此森林结构中的任何网域使用。换句话说,万用群组就跟它们的名称听起来一样:群组可以是森林结构中的任何一个地方定义,包含从森林结构中任一个地方而来的成员,能在森林结构的任一个地方使用。</span><span  id=Layer277></font></p><p><font size=2 color=#3c3c3c face=arial>万用群组的成员可以从网域森林结构或树状结构中的任一个网域而来,也可以在这些网域中使用</span><span  id=Layer278></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>万用群组的成员可以从网域森林结构或树状结构中的任一个网域而来,也可以在这些网域中使用</span><span  id=Layer279></font></p><hr><p><font size=2 color=#3c3c3c face=arial>此时有一个很明显的问题,为何要有其它类型的群组呢?因为万用群组相当简单,并能够广泛地应用,为何不永远使用他们呢?若森林结构相当的小,特别是它不是以慢速连线链结站台或网域时,万用群组可能可以满足所有的需求。不过在大型森林结构中,若只有万用群组,可能会造成效能上的问题。主要的理由是因万用群组成员清单是保

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -