【问题标题】:Forms authentication against multiple providers (SQl and AD)针对多个提供程序(SQl 和 AD)的表单身份验证
【发布时间】:2009-06-09 17:55:46
【问题描述】:

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

TIA, 凯文

【问题讨论】:

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


    【解决方案1】:

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

    编辑回答 cmets:

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

    【讨论】:

    • 您使用什么方法来确定哪个商店用户进行身份验证?或者 ADAM db 是否与您的 AD 同步? Web 服务方法很有趣,它是基于您可以共享或专有的东西吗?如果您不能共享源代码,您可以共享架构吗?端点是防火墙内的另一个 Web 服务器,还是你们创建了一个 Windows 服务作为端点?
    • 在我们的例子中,内部用户主要是外部用户。因此,他们以与外部客户相同的方式访问 Web 服务器。我只是希望他们能够使用他们的 AD 凭据,而不是在网络服务器上拥有单独的帐户和密码。我想避免在防火墙内创建单独的 Web 服务器并让“内部”用户登录等方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    • 2013-09-25
    • 2012-02-18
    • 2020-08-21
    • 2012-05-21
    相关资源
    最近更新 更多