在添加支持使用用户的samAccountName
通过Active Directory验证用户的支持时,我不小心使用了UPN格式的samAccountName
进行了验证。
示例:用户具有[email protected]
的UPN,而samAccountName
是anotherTest
请注意,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/