【问题标题】:Storing users of a public web site in Active Directory在 Active Directory 中存储公共网站的用户
【发布时间】:2011-01-06 15:38:34
【问题描述】:

我正在为基金/养老金经理开发系统架构。我们提供了两个 ASP.NET MVC Web 应用程序;一种是允许养老基金的成员登录并检查他们的余额,管理他们的投资等,另一种是允许雇主代表雇员(成员)向基金供款。也有通过 Intranet 交付的内部应用程序。

我们一直在考虑使用 Active Directory 来存储、验证/授权内部用户(他们已经使用 AD 登录域和资源授权)以及成员和雇主用户帐户。对于内部用户,成员和雇主用户帐户将位于不同的层次结构(甚至可能是不同的 AD 实例?)。

但是我想知道这是否是 AD 的最佳用例...鉴于 AD 是这样一个“内部”资源,它是否应该用于保存“外部”用户的身份验证详细信息(替代方案是 USERS 表在数据库中)?

好处是:AD 是为保存此类数据而设计和优化的,ASP.NET 应用程序与 AD 授权轻松集成,可能存在用于处理数据的现有工具(密码重置等)。

有什么风险?

【问题讨论】:

    标签: authentication architecture web-applications active-directory authorization


    【解决方案1】:

    我建议不要混合使用内部和外部用户。从经验来看,这会带来很多安全问题。最好创建单独的身份验证系统,一个直接针对内部域使用 AD,另一个使用仅用于保存外部用户的 ADAM 目录。 (即 - 内部用户应使用带有 AD 的 NTLM 进行身份验证,以确保 kerberos 加密登录,而表单可用于 ADAM 实例)。

    虽然 AD 很容易集成,但如果由于网络问题不希望直接集成,您始终可以尝试使用 LDAP:// 来获得相同的身份验证结果。

    【讨论】:

    • 从上面的答案中为我填补了一些空白的一些链接:en.wikipedia.org/wiki/Active_Directory#ADAM.2FAD_LDSdevsource.com/c/a/Using-VS/Making-Sense-of-ADAM
    • 哦,如果你想要链接,我可以在工作中挖掘我的文档文件,然后给你一大堆东西。我实际上已经实现了跨 4 个域的混合。我只是想把这个想法放在那里。实际的实现会比上面的段落要难一些。作为脚注,我建议内部域用户使用 NTLM 身份验证的主要原因是,通过 Web 身份验证,密码以明文形式存储在 RAM 中,因此外部计算机的渗透可能会导致内部用户密码的发现。 NTLM 是 kerberos,因此哈希在 RAM 中。
    【解决方案2】:

    我认为您最大的风险是广告无法扩展到您可能从互联网应用中获得的用户数量。我会使用 Membership 提供程序,除非您尝试使用内部和外部帐户实现 SSO。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-13
      • 1970-01-01
      • 2023-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多