RID可以复制的可能性有多大

时间:2011-06-13 06:43:00

标签: active-directory domaincontroller

我正在开发一个应用程序,在该应用程序中,我根据其RID识别用户和组。因此,如果域上存在重复的RID,则会出现问题。以下链接http://support.microsoft.com/kb/315062表示如果管理员获取RID管理员的角色并且两个或多个用户同时请求RID,则可以使用此链接。我想知道可能导致重复RID的其他可能性。

提前致谢。

1 个答案:

答案 0 :(得分:1)

我在您的问题中不理解的是您使用RID区分用户和组的原因。这些对象来自不同的类别,因此它们是天生的。

在Win32编程中,您只需使用:

BOOL WINAPI LookupAccountSid(
  __in_opt   LPCTSTR lpSystemName,
  __in       PSID lpSid,
  __out_opt  LPTSTR lpName,
  __inout    LPDWORD cchName,
  __out_opt  LPTSTR lpReferencedDomainName,
  __inout    LPDWORD cchReferencedDomainName,
  __out      PSID_NAME_USE peUse
);

如果SID是用户或群组,则此API来自{​​{3}}以在peUse中检索。

使用.NET Framework(C#),SecurityIdentifier可用于确定SID是否代表有效的域帐户。

最后一件事:通常用于区分目录中对象的方式是objectGUID属性。该属性存在于每个对象中。因此,您可以使用SID或GUID

从Active Directory服务接口(ADSI)中检索对象
"LDAP:///<GUID={28c67c50-9778-47a4-a77a-bf56f238a0c4}>"

"LDAP:///<SID=S-1-5-21-500000003-1000000000-1000000003-1001>"

(在你的评论后编辑) 据我所知,域内的重复RID被视为一个例外,它由一个担任相对ID(RID)Master角色的域控制器丢失来解释。也许它存在能够修补AD数据库以更改SID的黑客工具,但我不知道它们。

小心,RID可能会在其他域中重复。如果您在林中有子域或其他树,您可以再次找到具有不同子权限的相同RID(在同一ACL中具有潜力)

我发现计算机SID中也有重复,但这是由于Ghost使用不当造成的。