针对多个提供者的表单身份验证(SQl和AD)

时间:2009-06-09 17:55:46

标签: asp.net sql active-directory asp.net-membership forms-authentication

我们有一个适用于内部用户和外部客户的应用程序。我们希望针对内部用户针对AD进行身份验证,针对外部客户针对sql成员身份进行身份验证。有没有人采取类似的方法?在DMZ中,对AD进行身份验证的最佳方法是什么?我宁愿在dmz中使用某种代理,并在内部网络上处理针对AD DC的身份验证。有什么建议吗?

TIA, 凯文

1 个答案:

答案 0 :(得分:1)

我们有类似的情况。我们的内部用户反对AD外部人员对抗ADAM商店。与您的数据库方法不同,但类似的是它们有两个用户存储区。我们针对AD的身份验证发生在安全区域中,DMZ中的Web服务器会将Web服务调用进入安全区域进行身份验证。不知道你在寻找什么,但你的方法听起来不错。

编辑回答评论:

  • ADAM存储未与数据库同步。
  • 基本上,有两个Web服务配置使用的提供程序,每个商店一个。事实上,有一段时间用户从遗留系统迁移。为了确定用户所在的商店,应用程序首先只询问最常见的提供商(在我们的例子中是ADAM),如果用户不存在,它将转移到下一个提供商。
  • 端点是防火墙内部在中间层服务器上运行的Web服务。该服务器确实运行了IIS,所以从技术上讲它是一个Web服务器,但实际上是我们的中间层服务器,因为它不提供任何页面或托管除了一些Web服务之外的任何东西。
  • 所以听起来你有两种类型的外部用户。实际上是内部用户(在AD中)和真正在外部(在DB中)的用户。这不是很优雅,但你可以使用2个登录屏幕,每个屏幕一个。不要将内部用户外部登录屏幕发布给除他们以外的任何人,并将真实的外部登录屏幕发布到世界。有点hacky但它​​会工作。否则,您登录将需要识别用户的类型。