在添加支持使用用户的samAccountName通过Active Directory验证用户的支持时,我不小心使用了UPN格式的samAccountName进行了验证。

示例:用户具有[email protected]的UPN,而samAccountNameanotherTest请注意,samAccountName和UPN完全不同。
当我使用用户名[email protected]执行ldap绑定(bind)操作时,身份验证成功完成。

为什么成功?以UPN格式绑定(bind)samAccountName是否有效?

谢谢

最佳答案

好问题。就是这种情况,我从未尝试过找到答案。我找不到在线文档,只能在另一个论坛中找到这个discussion

听起来好像Active Directory中有一个默认的UPN(而不是ADAM),无论您在userPrincipalName属性中设置了什么值。默认的UPN格式为<samAccountName>@<domainName>

您还应该注意userPrincipalName属性不是必需属性。这意味着您始终可以创建没有为userPrincipalName属性分配任何值的AD用户对象。您不会意识到,如果使用Active Directory用户和计算机管理单元创建它,因为UI本身会强制您始终键入该值。但是,如果使用ADSI以编程方式创建AD对象,则可以这样做。

如果您的年龄足够大,可以在NT4系统上有一些经验,那么您应该知道当时只有samAccountName,而根本没有UPN。正因为如此,当您从NT4迁移到Windows 2003时,you will create a bunch of users with no UPN set to it

我怀疑这是从samAccountName派生默认UPN的动机。

请注意,samAccountName是AD用户对象的必需属性。因此,该属性不可能为空。

关于active-directory - 使用UPN格式的samAccountName进行身份验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11527173/

10-11 13:02