Webserver上的集成身份验证 - 安全性?

时间:2009-09-16 17:39:12

标签: authentication asp-classic

我们拥有自己的网络服务器托管我们的网站,该网站向我们网络以外的公众开放。

我有一个请求在我们的“职业”页面上进行“内部发布”链接,以根据我们网络的Active Directory列表对用户进行身份验证。

我目前已进行设置,因此链接会点击网站目录结构中的页面,此页面的文件夹设置为“集成Windows身份验证”。此页面的匿名访问已关闭。如果用户已通过身份验证(即:登录我们的网络或提供适当的凭据),则会将其传递到托管我们职位发布的外部职业网站。如果他们无法进行身份验证,则会显示自定义401错误页面。

这很好用,但是有问题。使用IE,人们不能只输入他们的用户名。他们(当然)也需要输入域名。不幸的是,默认的“域名”设置为我们网站的网址(www.xyz.com/username)。我希望它能自动选择我们内部域名(aaa / username)但不确定如何执行此操作。

另一种选择是使用LDAP和一些ASP脚本来验证用户身份。我已经有了这个代码,但我不确定这样做的安全后果。基本上,页面将设置为匿名身份验证,如果用户未登录我们的网络,将提示他们使用标准文本框输入用户名/密码。然后将其传递给ASP脚本,该脚本对我们的Active Directory执行LDAP查找。这种方法有安全问题吗?

您会选择哪种方法?

感谢。

编辑:我似乎无法使用用户名/密码组合通过LDAP对ActiveD进行身份验证。所以忘记那个选项。

我现在的问题是,如何更改IWA使用的默认“域名”?那可能吗? IE似乎默认为'www.xyz.com \ username'(我的网站),而不是'aaa \ username'(我的域名)。当然,www.xyz.com \ username失败了,因为那不是我们的ActiveD所在的地方......这可能吗?我想让员工尽可能简单。

3 个答案:

答案 0 :(得分:0)

您无法使用在LDAP中查找用户的脚本对用户进行身份验证。您需要知道用户是它声称的用户,并且唯一的方法是让NTLM / Kerberos对用户进行身份验证(即建立用户知道存储在AD中的秘密的证据,密码)。

答案 1 :(得分:0)

对于在内部网络上运行的IE浏览器,所考虑的站点集的网站URL位于本地Intranet区域中。默认情况下,当使用NTLM / Kerberos进行挑战时,将考虑向本地Intranet发送当前登录用户凭据的站点。因此,您的内部用户甚至不应该看到网络登录框。

答案 2 :(得分:0)

我讨厌挖掘一个旧线程,但如果我理解了这个问题,答案会有点误导。 Remus所指的线程是关于通过LDAP使用用户名进行身份验证。他指出,这是不可能的。但看起来Kolten的想法是通过LDAP使用用户名和密码进行身份验证。那是a standard practice called binding