我有一个 Web 应用程序,其前端是 ISA,本机针对 AD 进行身份验证。所有用户当前都使用 sAMAccountName 登录。我希望允许用户提供个人电子邮件地址,并能够针对此地址进行身份验证。
据我所知,AD userPrincipalName 通常用于内部生成的登录名,按照惯例,通常是内部生成的电子邮件地址。我拥有的 Web 应用程序是 Web 规模的(大约 300 万个帐户*),而不是内部企业应用程序,因此电子邮件地址将来自不同的域。我是否可以将 AD userPrincipalName 属性设置为用户的电子邮件地址,然后 ISA 会根据此属性进行本机身份验证?我听说 AD 允许在 AD userPrincipalName 中使用的最大域后缀数是……?(大概它会对它们进行分类)。
[*我意识到 AD 并不是这种规模的用户群体的理想身份验证目录。]
答案1
只要值是唯一的,答案就是肯定的。
答案2
userPrincipalName
可以使用 ADSIedit 将属性设置为任意值。但是,为了使其有用userPrincipalName
,您必须将其设置为某种定义的格式。它应该始终看起来像这样[电子邮件保护]。此外,您不能任意设置域名否则,Windows 无法查找正确的域控制器来进行身份验证。
userPrincipalName
可以在 中编辑 AD 用户的值Active Directory User and Computer
。该值显示在“帐户”选项卡下的用户登录名下。从此属性页中,您会立即发现,您只能编辑用户名UPN 的一部分。Windows 为您提供了一个组合框,用于域名部分。通常,那里只有一个选项,即您的 AD 域名。
为了使用一些其他值域名,您需要使用 添加其他域后缀Active Directory Domains and Trusts
。请参阅这里。请注意,只有域管理员才能为域添加其他域后缀。添加其他域后缀后,您可以返回Active Directory User and Computer
。用户属性页现在应该允许您选择新添加的域后缀以及默认 AD 域名。
答案3
我测试了加载一个包含 2000 个用户的广告,这些用户都有唯一的 userprincipalName。他们也都有唯一的域,这些域尚未在 AD 域和信任中注册(即,他们不会出现在 Active Directory 用户和计算机的下拉列表中)
然后,我测试以其中一个用户的身份,使用 userprincipalname 登录到以 ISA 为前端的 Web 应用程序,并针对 AD 进行本地身份验证,并且一切运行正常。