可以任意的电子邮件地址存储在AD userPrincipalName?

我有一个Web应用程序,由ISA前端,本地validationAD。 所有用户当前使用sAMAccountNamelogin。 我想允许用户提供个人电子邮件地址,并能够对此进行身份validation。

据我所知,AD userPrincipalName通常用于内部生成的login名,按照惯例,它通常是其内部生成的电子邮件地址。 我拥有的networking应用程序是networking规模(大约300万个帐户*),而不是内部的公司应用程序,所以电子邮件地址将来自不同的域。 我可以只将AD userPrincipalName属性设置为用户的电子邮件地址,然后将ISA本地validation此属性,而不是? 我听说AD有最大数量的域名后缀,它允许在AD userPrincipalName …? (大概是它们目录)。

[*我意识到AD不是这种规模的用户群体的理想authentication目录。]

只要价值是独一无二的,答案是肯定的。

userPrincipalName属性可以使用ADSIedit设置为任何值。 但是,要使userPrincipalName有用,必须将其设置为某种定义的格式。 它应该总是像这个[email protected] 。 另外,你不能设置任意的domain.name 。 否则,Windows无法查找正确的域控制器来执行身份validation。

AD用户的userPrincipalName的值可以在Active Directory User and Computer编辑。 该值显示在“帐户”选项卡下的“用户login名”下。 在此属性页面中,您立即发现只能编辑UPN的用户名部分。 Windows为您提供了domain.name部分的combobox。 通常,这里只有一个选项,那就是你的AD域名。

为了使用domain.name的其他值,您需要通过使用Active Directory Domains and Trusts添加其他域后缀。 看到这里 。 请注意,只有域pipe理员可以为该域添加其他域后缀。 一旦添加了其他域后缀,就可以返回到Active Directory User and Computer 。 用户属性页面现在应该允许您select新添加的域名后缀以及默认的AD域名。

我testing了用2000个用户加载广告,所有用户都拥有唯一的userprincipal名称。 他们都有独特的域名,也没有在AD域名和信任域中注册(也就是说,他们没有出现在Active Directory用户和计算机的下拉列表中)

然后,我将这些用户的身份login到ISA前端的Web应用程序中,作为这些用户之一进行testing,本地validationAD,并且没有任何问题。