AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 567776
Accepted
dunxd
dunxd
Asked: 2014-01-17 09:02:56 +0800 CST2014-01-17 09:02:56 +0800 CST 2014-01-17 09:02:56 +0800 CST

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

  • 772

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

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

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

有没有其他人选择了一个一致地使用,是什么影响了你的决定?有什么文件可以澄清这个问题吗?

active-directory
  • 3 3 个回答
  • 39560 Views

3 个回答

  • Voted
  1. Best Answer
    Ryan Ries
    2014-01-17T09:30:39+08:002014-01-17T09:30:39+08:00

    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 需要对域中的每个人(但不是森林)都是唯一的。此外,SamAccountNames 很短。大多数人使用 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

    • 18
  2. Mitch
    2014-01-17T09:42:08+08:002014-01-17T09:42:08+08:00

    如果您将 username 称为某人将要登录的内容,我建议您使用sAMAccountName,它与域名组合是唯一的,或者userPrincipalName,它在森林中是唯一的。

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

    为此,我会调用LookupAccountName,它接受一个代表用户名的字符串,并返回找到用户所在域的sAMAccountName、SID和域名。

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

    • 4
  3. Stan
    2017-09-26T05:27:42+08:002017-09-26T05:27:42+08:00

    我建议允许用户选择他想要使用的名称格式并确定用户在应用程序端的输入。例如:如果用户键入:[email protected] - 将其视为 UPN 并在 AD 中搜索 UPN。如果用户键入: username - 将其视为预定义默认域的 samAccountName,当然如果用户键入 domain\username - 将其视为来自指定域的 samAccountName。始终检索用户的 SID 并将所有权限分配给 SID,因为人们结婚并且用户名可以更改。

    • 0

相关问题

  • 如果以域用户身份远程登录,PC 速度极慢

  • 如何在 Windows 2003 的 ou 级别应用策略

  • 允许用户更改其 Active Directory 密码的 Web 界面

  • MOSS 2007 无法使用 ActiveDirectoryMembershipProvider 配置表单身份验证

  • 通过 VPN 更改 Active Directory 密码

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve