某些应用程序和 Api 需要访问帐户对象的授权信息

针对 Windows Server 2003 的支持已于 2015 年 7 月 14 日终止。

Microsoft 已于 2015 年 7 月 14 日终止了对于 Windows Server 2003 的支持。该更改已影响到您的软件更新和安全选项。 了解这一措施对于您的含义以及如何继续保持受保护状态。

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 331951
概要
某些应用程序必须读取标记-组-全局-和-通用 (TGGAU) 的特性或 Microsoft 活动目录(AD) 目录服务中的计算机帐户对象上的用户帐户对象的功能。一些 Win32 函数,使易于阅读的 TGGAU 属性。如果调用的安全性上下文没有访问该属性,则不会成功读取此属性或调用读取此属性的 API (称为本文的其余部分中的函数) 的应用程序。

默认情况下,TGGAU 属性访问权限取决于权限兼容性决策 (DCPromo.exe 过程中创建域时)。新的 Windows Server 2003 域默认权限兼容性并不授予广泛访问 TGGAU 属性。读取 TGGAU 属性可被授予访问权限根据需要对 Windows Server 2003 中的新Windows 授权访问(WAA) 组。
更多信息
标记组-全局-和-通用 (TGGAU) 特性是动态计算的值和在 活动目录(AD) 中的用户帐户对象上的计算机帐户对象。此属性枚举全局组成员身份以及相应的用户帐户或计算机帐户的通用组成员身份。应用程序可以使用 TGGAU 属性来决定各种特定用户在用户未登录时提供的组信息。

例如,应用程序可以使用此信息来确定用户是否已被授予访问应用程序控件访问的资源。需要此信息的应用程序可以使用轻型目录访问协议接口或活动目录服务接口来直接读取 TGGAU 属性。但是,Microsoft Windows Server 2003 引入了 (包括AuthzInitializeContextFromSid函数和LsaLogonUser函数) 的几种简化阅读和解释的 TGGAU 属性的函数。因此,使用这些功能的应用程序可能会不知不觉地读取 TGGAU 属性。

对于应用程序可以直接读取此属性或间接读取 (通过一个 API) 使用此属性,在运行应用程序的安全上下文必须已被授予用户对象和计算机对象上的 TGGAU 对象的读取访问。您不希望应用程序假定他们有权访问 TGGAU。因此,您可以预计应用程序访问被拒绝时都未成功。在此情况下,您 (用户) 可能会收到一条错误消息或日志项来解释该访问被拒绝时试图读取此信息,并说明如何获取访问权限 (如本文中稍后所述)。

几个现有的应用程序依赖于所提供的 TGGAU 信息,因为默认情况下,在 Microsoft Windows NT 4.0 和更早的操作系统的信息。因此,Microsoft Windows 2000,Windows Server 2003 操作系统上对 TGGAU 属性读取访问权限授予windows 2000 以前版本兼容访问组。

对于使用现有的应用程序的域,您可以通过添加这些应用程序运行windows 2000 以前版本兼容访问组安全上下文处理这些应用程序。或者,可以选择在 DCPromo 过程中的"Windows 2000 服务器之前与兼容的权限"选项,当您创建一个域。(在 Windows Server 2003 中,此选项措词如下: "与 Windows 2000 server 操作系统相兼容的权限"。)选择此选项将为Everyone组添加windows 2000 以前版本兼容访问 进行分组,并从而授予Everyone组读取访问到 TGGAU 属性和许多其他域对象。

有关 Windows 2000 兼容访问组的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章 ︰
257988 Dcpromo 权限选项的说明
创建新的 Windows Server 2003 域时,默认访问兼容性选择时,只用 Windows 2000 或 Windows Server 2003 操作系统相兼容的权限。当设置了此选项时, windows 2000 兼容访问组包括只有经过身份验证的用户内置安全标识符,并到对象上的 TGGAU 属性的读访问会受到限制。在这种情况下,应用程序需要对 TGGAU 组的访问被拒绝访问,除非应用程序运行的帐户具有域管理员权限或类似的用户权限。

使应用程序能够读取 TGGAU 属性

为了简化标记-组-全局-和-通用 (TGGAU) 属性的读取访问权限授予用户必须读取属性的过程,Windows Server 2003 引入了 Windows 授权访问 (WAA) 组。

在新安装的 Windows Server 2003 域,WAA 组授予访问权限读取 TGGAU 属性和组对象上的用户对象。

Windows 2000 域

如果域是在早于 Windows 2000 兼容的访问模式下, Everyone组将具有读取访问权限的 TGGAU 属性,用户帐户对象和计算机帐户对象上。在此模式下,应用程序和功能具有对 TGGAU 的访问。

如果域在 windows 2000 以前版本兼容访问模式下,您可能需要启用某些应用程序来读取 TGGAU。由于在 Windows 2000 上不存在Windows 授权访问组,建议您为此目的,创建域本地组和添加需要到该组的 TGGAU 属性访问权限的用户或计算机帐户。此组将不得不被赋予访问用户对象、 计算机对象和iNetOrgPerson对象的tokenGroupsGlobalAndUniversal属性。

有关如何使用示例脚本执行此操作的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章 ︰
331947 如何以编程方式应用 Windows Server 2003 在 活动目录(AD) 目录服务中的内置组的访问权限

混合的模式域中,升级后的域

当 Windows Server 2003 的域控制器添加到 Windows 2000 域中时,选择了先前访问兼容性选项不会更改。因此,混合的模式域和域中已升级到 Windows Server 2003 在早于 Windows 2000 兼容的访问模式中继续有早于 Windows 2000 以前版本兼容访问组中的所有人组。此外, Everyone组仍有权访问 TGGAU 属性。在此模式下,应用程序和功能具有对 TGGAU 的访问。

如果混合的模式域在 windows 2000 以前版本兼容访问模式下,您可以将权限授予 WAA 组 ︰
  • 在 Windows Server 2003 的域控制器被提升到浮动单主机操作的服务器时,会自动创建 WAA 组。
  • 未自动授予 WAA 组在混合模式域中,升级后的域上的 TGGAU 属性访问权限。
有关演示如何应用这些权限的脚本的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章 ︰
331947 如何以编程方式应用 Windows Server 2003 在 活动目录(AD) 目录服务中的内置组的访问权限
Windows 授权访问 (WAA) 组有权访问 TGGAU 属性后,您可以将需要访问 WAA 组中的帐户。

新的 Windows Server 2003 域

如果域是在早于 Windows 2000 兼容的访问模式下, Everyone组将具有读取访问权限的 TGGAU 属性,用户帐户对象和计算机帐户对象上。在此模式下,应用程序和功能具有对 TGGAU 的访问。

如果域在 windows 2000 以前版本兼容访问模式下,添加到 WAA 组需要访问 TGGAU 这些帐户。在新安装的 Windows Server 2003 中,WAA 组已经对 TGGAU 的读访问用户对象和计算机对象上。
AuthzInitializeContextFromSid InitializeClientContextFromName LsaLogonUser MSMQ WMI

警告:本文已自动翻译

属性

文章 ID:331951 - 上次审阅时间:05/07/2016 23:39:00 - 修订版本: 9.0

Microsoft Windows Server 2003 Standard Edition, Microsoft Windows Server 2003 Enterprise Edition, Microsoft Windows Server 2003 Datacenter Edition, Microsoft Windows Server 2003, Enterprise x64 Edition

  • kbsecurity kbinfo kbmt KB331951 KbMtzh
反馈