针对 Active Directory 进行身份验证时使用哪个字段?

针对 Active Directory 进行身份验证时使用哪个字段?

Active Directory 用户对象包含许多可视为标识符的字段。以下列出了其中一些字段及其在 ADUC 中的标签和属性名称:

  • 全名 - cn
  • ? - 姓名
  • 用户 sAMAccountName 登录 - sAMAccountName
  • 用户 UPN 登录:userPrincipalName
  • ? - 专有名称

我试图让我们的开发人员在编写针对 AD 进行身份验证的自定义代码时,统一使用其中一种 - 问题是我不确定哪种是“正确的”,或者在不同情况下不同的哪种是正确的。我甚至不确定是否应该使用上述任何字段!

有没有其他人选择过一个并一直使用,是什么影响了你的决定?有任何文档可以澄清这个问题吗?

答案1

CN(通用名称)不适用于登录,因为单独的 CN 不能唯一地标识用户。我可以使用

CN=Ryan Ries,OU=Dallas,DC=Domain,DC=com

我也可以有一个

CN=Ryan Ries,OU=New York,DC=Domain,DC=com

用户的 CN 也是一个 RDN(相对可分辨名称)。他们有相同的 CN,但不同的 DN。您可能会注意到,如果您的组织中有两个名叫 Ryan Ries 的人,您会遇到问题,您必须将第二个人的 SamAccountName 设置为类似rries2

DN(专有名称)不适用于登录,因为谁会想用这样的用户名登录系统CN=ryan,OU=Texas,DC=brazzers,DC=com?虽然使用 DN 确实可以唯一且明确地标识用户,但必须输入却很烦人。它与文件系统上的相对路径和绝对路径之间的概念相同。它还意味着您确切地知道对象在目录结构中的位置,而无需搜索它。而您通常不需要搜索。

这称为模糊名称解析 (ANR) - 当您不知道用户的可分辨名称时,在目录中搜索用户。

UPN(用户主体名称)非常好,因为它们看起来像电子邮件地址,它们可以与用户的公司电子邮件地址相同,它们很容易记住,并且它们是登录的首选,因为在林中搜索之前,会首先在本地域中搜索该名称。

微软表示:UPN 的目的是整合电子邮件和登录命名空间,以便用户只需记住一个名称。UPN 是 Windows 用户的首选登录名。用户应该使用他们的 UPN 登录域。登录时,首先通过搜索本地域,然后搜索全局目录来验证 UPN。如果在本地域或 GC 中找不到 UPN,则会导致 UPN 被拒绝。UPN 可以分配,但不是必需的,当用户帐户创建时。

在设计应用程序时请记住最后的“非必需”位。

SamAccountName 也很好,因为 SamAccountName 对于域(但不是林)中的每个人来说都是唯一的。此外,SamAccountName 很短。大多数人使用 SamAccountNames 登录,即使它们不能在 AD 林中唯一地标识您,这就是为什么您必须指定一个域名来与您的 SamAccountName 一起使用,以便系统知道您尝试登录哪个域。

以下是有关该问题的一些精彩文档,可供进一步阅读:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms677605(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/ms680857(v=vs.85).aspx

答案2

如果您指的是用户名是某人登录时输入的内容,我建议您使用sAMAccountName与域名组合唯一的用户名,或者userPrincipalName使用在林中唯一的用户名。

至于用户名作为唯一标识符,Windows 使用 SID 作为所有访问控制条目,并提供一整套从用户名转换为 SID 的方法。SID 与帐户生命周期的用户隐喻相匹配,因为在域内重命名和移动不会产生任何影响,但删除并重新创建会产生新的 SID。

为此,我想呼吁LookupAccountName,它采用表示用户名的字符串,并返回sAMAccountNameSID以及找到该用户所在域的域名。

然后,用户可以使用 Windows 支持的任何语法登录,无需额外培训。

答案3

我建议允许用户选择他想要使用的名称的格式并在应用程序端确定用户的输入。例如:如果用户输入:[电子邮件保护]- 将其视为 UPN 并在 AD 中搜索 UPN。如果用户输入:用户名 - 将其视为预定义默认域的 samAccountName,当然,如果用户输入域\用户名 - 将其视为指定域的 samAccountName。始终检索用户的 SID 并将所有权限分配给 SID,因为人们会结婚,用户名可能会改变。

相关内容