【问题标题】:Active Directory and PrincipalPermissionActive Directory 和 PrincipalPermission
【发布时间】:2009-07-06 16:53:08
【问题描述】:

这更多是出于好奇而不是请求帮助,但我注意到,当使用 PrincipalPermission 并验证用户是 Active Directory 中特定组的一部分时,它不会使用真正的组名,而是根据预先Windows 2000 组名代替。通常这不会产生影响 - 除非有人碰巧使这些值不同。

谁能想到.Net API 为什么会使用该组名而不是“真实”名称?这给我带来了数小时的悲伤和一点点运气,终于弄明白了。

【问题讨论】:

    标签: c# security active-directory principalpermission


    【解决方案1】:

    我会假设(没有自己测试和尝试过)PrincipalPermission 属性将使用 Active Directory 中的“sAMAccountName”作为用户和组名(例如“Users”或“JohnDoe”)而不是“可分辨名称” (DN) 您可能期望的(“CN=Users”、“CN=John Doe”)。

    这背后的原因很可能是您正在处理的场景,例如独立服务器或 NT4 域。在这些情况下,您根本没有任何基于 AD 的专有名称 - 但您有 SAM 帐户名称。

    所以从某种意义上说,这乍一看可能有点令人惊讶 - 但我认为使用这些 SAM 帐户名称(AD 之前的名称)确实有意义 - 你不同意吗?

    马克

    【讨论】:

    • 有趣。我想我明白你的意思——他们这样做是为了支持可能在没有 Active Directory 的系统上运行某些东西的客户。我什至没有意识到组名在本地系统上仍然类似于“sAMAccountName”(老实说,以前从未尝试过)。谢谢!
    【解决方案2】:

    原因是保证安全。 samAccountName 属性 is unique across all security principal objects in an NTDS domain。如果改用其他名称属性,攻击者可以通过在不同的组织单位或容器中创建具有相同名称的其他用户/组来轻松解决安全权限问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多