aku1 发表于 2006-6-14 15:41:25 |
跨域访问资源
因为同一林中的两个或更多的 Active Directory 域是通过双向的可传递信任隐式连接在一起的,所以从一个域到另一个域的身份验证请求将能够成功路由,从而实现了无缝的资源跨域共存。用户必须首先在自己的域内经过身份验证,才能访问其他域中的资源。
运行 Windows 2000 或 Windows Server 2003 的域控制器使用下列两个身份验证协议之一来验证用户和应用程序:Kerberos V5 或 NTLM。有关 Kerberos 身份验证的详细信息,请参阅 Kerberos V5 身份验证。有关 NTLM 身份验证的详细信息,请参阅 NTLM 身份验证。有关 Active Directory 身份验证过程的详细信息,请参阅 Active Directory 中的访问控制。
一旦通过了身份验证,用户就可以尝试通过 Active Directory 授权过程访问来自林中任何域的资源。有关 Active Directory 身份验证过程的详细信息,请参阅 Active Directory 的安全信息。
要使用 Kerberos 访问其他域中的共享资源,用户的工作站需要首先请求一张从所在帐户域的域控制器到信任域中(存放资源)的服务器的票证。此票证将由受工作站和服务器信任的中介发出。工作站将把该信任票证提交给信任域中的服务器,以便进行身份验证。
下图以及相应的步骤详细描述了当运行 Windows 2000 Professional、Windows 2000 Server、Windows XP Professional 或 Windows Server 2003 家族成员的计算机尝试访问来自另一个域中服务器的资源时,所使用的 Kerberos 身份验证过程。
艺术图像
1. |
User1 使用来自 child1.microsoft.com 域的凭据登录到 Workstation1。在此过程中,负责进行验证的域控制器将为 User1 颁发一张票证授予式票证 (TGT)。在进行资源访问身份验证时,需要提供此票证。此后,用户尝试访问 child2 域中文件服务器上的共享资源 (\\fileserver1\share)。 |
2. |
Workstation1 联系其所在域中的某个域控制器 (ChildDC1) 上的密钥发行中心 (KDC),并针对 FileServer1 的服务主体名称 (SPN) 申请服务票证。 |
3. |
ChildDC1 没有在自身域数据库中找到该 SPN,因而继续查询全局编录,看林中是否有任何域包含此 SPN。全局编录将所请求的信息发送回 ChildDC1。 |
4. |
ChildDC1 将引用发送给 Workstation1。 |
5. |
Workstation1 联系 ForestRootDC1(它的父域)中的域控制器,以便获取访问 Child2 域中的域控制器 (ChildDC2) 时所需的引用。ForestRootDC1 将引用发送给 Workstation1。 |
6. |
Workstation1 联系 ChildDC2 上的 KDC 并协商访问 FileServer1 时所需的票证。 |
7. |
现在 Workstation1 具备了服务票证。它将把服务票证发送给 FileServer1,而 FileServer1 将读取用户的安全凭据并相应地建立访问令牌。 |
每个域都有自己的一组安全策略,并不在各个域之间交叉使用。详细信息,请参阅域。
规划多个域的访问控制策略
建议您根据单位的资源需求认真规划出最有效的访问控制策略。其中一个需要重点考虑的因素是单个林的每个域中安全组的设计与实施。有关规划多个林的访问控制策略的信息,请参阅跨林访问资源。
在开始进行规划之前,应当了解下列安全组概念:
• |
安全组。用户权利可应用到 Active Directory 中的组,而权限可指派给存放资源的成员服务器上的安全组。详细信息,请参阅组类型。 |
• |
嵌套组。嵌套安全组的能力取决于组作用域和域功能。详细信息,请参阅嵌套组。 |
• |
组作用域。组作用域可帮助确定安全组在域范围和林范围上的访问边界。详细信息,请参阅组作用域。 |
• |
域功能。信任域和受信任域的域功能级别可以影响诸如嵌套组这样的组功能。详细信息,请参阅域和林功能。 |
当您对安全组概念完全理解之后,就可以确定每个部门和地理区域的资源需求,从而有助于规划工作的进行。
对共享资源跨域访问实施控制时的最佳操作
通过谨慎使用域的本地组、全局组和通用组,管理员可以更有效地控制对其他域中资源的访问。请考虑如下最佳操作:
• |
根据管理需要(例如位置或部门)组织域用户,然后创建全局组,并添加适当的用户帐户作为其成员。
例如,将销售部门的所有雇员用户帐户添加到“Sales department”全局组中,将会计部门的所有雇员用户帐户添加到“Accounting Department”全局组中。 |
• |
创建一个本地域组,将其他域中所有需要对您域中的资源有相同访问权的全局组添加进去。
例如,DomainA 中的“Sales department”和“Accounting Department”全局组中的雇员需要使用 DomainB 中的类似打印资源。为了使以后的管理更改更加灵活,应在 DomainB 中创建名为“Print Resources”的本地域组,并将 DomainA 中的“Sales department”和“Accounting Department”全局组添加为其成员。 |
• |
将共享资源的必要访问权限指派给该本地域组。
例如,将权限指派给 DomainB 中的“Print Resources”本地域组,以便其成员(包括 DomainA 的“Sales Department”和“Accounting Department”)可访问 DomainB 中的打印机。 |
在外部信任关系中的域之间执行选择性身份验证
通过使用“Active Directory 域和信任关系”,您可以确定由外部信任连接的两个域之间的身份验证作用域。可以为传入和传出外部信任设置不同的选择性身份验证。通过使用选择性信任,管理员可以在外部域之间做出灵活的访问控制决定。有关设置选择性身份验证的详细信息,请参阅为用户选择身份验证作用域。
如果您对传入外部信任使用域范围的身份验证,那么第二个域中的用户将拥有与本地域用户相同的本地域资源访问级别。例如,假设 DomainA 拥有一个来自 DomainB 的传入外部信任,并且采用的是域范围的身份验证,那么 DomainB 的任何用户都能访问 DomainA 中的任意资源(假定他们具备所需的权限)。
如果对传入外部信任设置了选择性身份验证,那么需要在第二个域中的用户希望访问的每个资源上手动指派权限。要执行此操作,请在某个对象上为外部域的特定用户或组设置控制访问权限允许身份验证。
在启用“选择性身份验证”选项的情况下,当用户通过信任关系进行身份验证时,其他单位安全 ID (SID) 将被添加到用户的授权数据中。此 SID 的出现提示系统检查资源域以便确保用户有权进行特定服务的身份验证。用户经过身份验证后,如果其他单位 SID 尚不存在,那么服务器将添加本单位 SID。在经过身份验证的用户的上下文中,这些特殊的 SID 中只能有一个出现。有关选择性身份验证工作原理的详细信息,请参阅Security Considerations for Trusts。
每个域中的管理员都可将一个域的对象添加到另一个域中共享资源上的访问控制列表 (ACL) 中。可使用 ACL 编辑器将一个域中的对象添加到另一个域中的资源 ACL 中,或者将其从中删除。有关设置资源权限的详细信息,请参阅设置共享资源的权限。
有关为多个林设置身份验证限制的信息,请参阅跨林访问资源。
跨林访问资源
更新日期: 01/21/2005
跨林访问资源
当两个 Windows Server 2003 林通过林信任连接起来时,使用 Kerberos V5 或 NTLM 协议发出的身份验证请求可在林之间路由,以提供对两个林中资源的访问。有关跨林路由身份验证请求的详细信息,请参阅跨林路由名称后缀。
要使身份验证协议能够遵循林信任路径,必须首先将资源计算机的服务主体名称 (SPN) 解析到另一个林中的某个位置。SPN 可以是以下几种类型之一:主机的域名系统 (DNS) 名称、域的 DNS 名称或服务连接点对象的可分辨名称。
当一个林中的工作站试图访问另一个林中资源计算机上的数据时,Kerberos 将与域控制器联系以获取资源计算机 SPN 的服务票证。当域控制器查询了全局编录并确认该 SPN 与域控制器不在同一个林中时,该域控制器将其父域的引用发送回工作站。此时,工作站将查询父域以获得服务票证,并沿着引用链一直到找到资源所在域为止。
下图以及相应的步骤详细描述了当运行 Windows 2000 Professional、Windows XP Professional、Windows 2000 Server 或 Windows Server 2003 家族成员的计算机试图访问另一个林中的计算机上的资源时,所采用的 Kerberos 身份验证过程。
ART 图像
1. |
User1 使用凭据从 child.microsoft.com 域登录到 Workstation1。然后,此用户尝试访问 msn.com 林中 FileServer1 上的共享资源。 |
2. |
Workstation1 联系自身所在域 (ChildDC1) 中某个域控制器上的密钥发行中心 (KDC) 并请求 FileServer1 SPN 的服务票证。 |
3. |
ChildDC1 没有在自身域数据库中找到该 SPN,因而继续查询全局编录,看 microsoft.com 林中是否有任何域包含此 SPN。由于全局编录仅限于自己的林,所以没有找到该 SPN。然后,全局编录检查其数据库,查找与其所在林建立的林信任关系的信息;如果找到,它会将林信任关系的受信任域对象 (TDO) 中列出的名称后缀和目标 SPN 的后缀相比较,看二者是否匹配。一旦发现匹配,全局编录就向 ChindDC1 返回一个路由提示。 |
4. |
ChildDC1 将其父域的引用发送给 Workstation1。 |
5. |
Workstation1 与 ForestRootDC1(其父域)中的某个域控制器联系以获得 msn.com 林的林根域中某个域控制器 (ForestRootDC2) 的引用。 |
6. |
Workstation1 与 msn.com 林中的 ForestRootDC2 联系以获得所请求服务的服务票证。 |
7. |
ForestRootDC2 与其全局编录联系以查找该 SPN;全局编录找到与该 SPN 的匹配并将其发送回 ForestRootDC2。 |
8. |
然后,ForestRootDC2 将 child.msn.com 的引用发送回 Workstation1。 |
9. |
Workstation1 与 ChildDC2 上的 KDC 联系,并协商票证以便 User1 访问 FileServer1。 |
10. |
至此 workstation1 有了服务票证,它将服务器服务票证发送到 FileServer1,后者读取 User1 的安全凭据并相应地建立一个访问令牌。 |
当最初建立林信任时,每个林都会收集其伙伴林中所有受信任的名称空间,并将此信息存储到 TDO 中。受信任的名称空间包括域树名称、用户主体名称 (UPN) 后缀、服务主体名称 (SPN) 后缀,以及另一林中使用的安全 ID (SID) 名称空间。TDO 对象被复制到全局编录中。有关 TDO 的详细信息,请参阅信任。
路由提示
只有当所有传统的身份验证通道(本地域控制器,然后是全局编录)都无法给出 SPN 的位置时,才使用路由提示。路由提示可帮助将身份验证请求传递给目标林。
当无法在发出网络登录请求的域或者全局编录数据库中找到 SPN 时,全局编录将检查林信任 TDO,看其他林中是否有与 SPN 中的后缀匹配的受信任名称后缀。如果找到了匹配,林根域就会将路由提示返回给源计算机,以使其能够继续在其他林中定位 SPN。
注意
• |
路由提示只能引用相应林信任的 TDO 中列出的受信任名称后缀。在将提示发送回源计算机之前,它们不验证名称后缀。 |
• |
不支持跨越林信任关系访问 NetBIOS 名称和 Kerberos 委派。NTLM 完全受支持且不能被禁用。 |
规划多个林的访问控制策略
建议您根据单位的资源需求认真规划出最有效的访问控制策略。其中一个需要重点考虑的因素是每个林中安全组的设计和实现。有关规划多个域的访问控制策略的信息,请参阅跨域访问资源。
在开始进行规划之前,应当了解下列安全组概念:
• |
安全组。用户权利可应用到 Active Directory 中的组,而权限可指派给存放资源的成员服务器上的安全组。详细信息,请参阅组类型。 |
• |
组嵌套。嵌套安全组的能力取决于组作用域和域功能。详细信息,请参阅嵌套组。 |
• |
组作用域。组作用域可帮助确定安全组在域范围和林范围上的访问边界。详细信息,请参阅组作用域。 |
• |
域功能。信任域和受信任域的域功能级别可以影响诸如嵌套组这样的组功能。详细信息,请参阅域和林功能。 |
当您对安全组概念完全理解之后,就可以确定每个部门和地理区域的资源需求,从而有助于规划工作的进行。
跨林使用安全组的最佳操作
通过谨慎使用本地域组、全局组和通用组,管理员可以更有效地控制对其他林中的资源的访问。请考虑采用下列最佳操作:
• |
根据管理需要(例如,地理位置或部门)组织每个林中的域用户,然后为每个地理位置或部门创建全局组,再向其中添加相应的用户帐户。
例如,将销售部门的所有雇员用户帐户添加到“Sales department”全局组中,将会计部门的所有雇员用户帐户添加到“Accounting Department”全局组中。
当跨林实施访问控制策略时,一个林中的全局组主要用于添加到另一个林的通用组中。 |
• |
在资源林中创建一个通用组,然后将另一个林(或多个林)中所有需要类似访问权限的全局组添加为该通用组的成员。
例如,ForestA 中“Sales Department”和“Accounting Department”全局组中的雇员都使用 ForestB 中类似的打印资源。请在 ForestB 中创建一个名为“Print Users in Other Forests”的全局组,并将来自 ForestA 的“Sales Department”和“Accounting Department”全局组都添加为其成员。
通用组主要用于将两个或更多全局组(可能来自其他林)归组到一起以便为资源域形成一个组。 |
• |
在资源林内资源所在的域中创建一个本地域组,然后将所有适用的通用组添加为其成员。
例如,ForestA 中销售部门的雇员和 ForestC 中生产部门的雇员都使用 ForestB 中类似的打印资源。在 ForestA 中创建了一个包含所有销售部门雇员的通用组 (Sales),而所有生产部门雇员都被添加到 ForestC 中一个新的通用组 (Manufacturing) 中。然后,可将“Sales”和“Manufacturing”通用组添加到资源域(在 ForestB 中)中一个名为“Print Resources”的本地域组中。
当跨林实施访问控制策略时,本地域组主要用于将来自其他林的通用组归到一个组中,以便于管理。 |
• |
将必要的权限指派给 ForestA 中共享资源上的本地域组。
例如,请将打印服务器的必要权限指派给 ForestB 内资源域中的“Print Resources”本地域组。因为 ForestA 中的“Sales”雇员组和 ForestC 中的“Manufacturing”雇员组都是 ForestB 中“Print Resources”本地域组的成员,所以他们也将获得必需的权限。
详细信息,请参阅设置共享资源的权限。 |
林之间的选择性身份验证
通过使用“Active Directory 域和信任关系”,可以确定由林信任连接的两个林之间身份验证的作用域。可以为内传和外传林信任设置不同的选择性身份验证。通过使用选择性信任,管理员可以灵活地控制林范围上的访问。有关设置选择性身份验证的详细信息,请参阅为用户选择身份验证作用域。
如果您对内传林信任使用林范围的身份验证,那么对于本地林中的资源,来自外部林的用户与属于本地林的用户将具有相同的访问级别。例如,如果 ForestA 具有来自 ForestB 的传入林信任,并且使用林范围的身份验证,则林 ForestB 中的用户将无法访问 ForestA 中的任何资源(假定用户具有所需的权限)。
如果决定对内传林信任设置选择性身份验证,那么需要在希望第二个林中的用户能够访问的每个域和资源上手动指派权限。要执行此操作,请为第二个林的特定用户或组的对象设置控制访问权利允许身份验证。
在启用“选择性身份验证”选项的情况下,当用户通过信任关系进行身份验证时,其他单位安全 ID (SID) 将被添加到用户的授权数据中。此 SID 的出现提示系统检查资源域,以确保该用户可以针对特定服务进行身份验证。当该用户经过身份验证以后,如果其他单位 SID 尚不存在,那么用户验证的目标服务器将添加一个本单位 SID。在经过身份验证的用户的上下文中,这些特殊的 SID 中只能有一个出现。有关选择性身份验证工作原理的详细信息,请参阅信任关系的安全考虑事项。
每个林中的管理员都可将一个林中的对象添加到另一林中共享资源上的访问控制列表 (ACL) 中。可使用 ACL 编辑器将一个林中的对象添加到另一个林中资源上的 ACL 中,或将其从中删除。有关设置资源权限的详细信息,请参阅设置共享资源的权限。
有关设置外部域的身份验证限制的信息,请参阅跨域访问资源。
|