AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 47103
Accepted
Parand
Parand
Asked: 2009-07-29 09:24:22 +0800 CST2009-07-29 09:24:22 +0800 CST 2009-07-29 09:24:22 +0800 CST

用于 Web 身份验证的 Active Directory:扩展到 100 万用户?

  • 772

我对 Active Directory 作为网站的身份验证后端的表现很感兴趣,可扩展到约 100 万用户。您是否有在这种规模的 Web 环境中使用 AD 的经验,如果有,我们需要什么级别的硬件?

[更新] 关于登录频率:我同意这是一个关键因素,但我们还没有这些信息。假设一个常规的商业/银行站点设置:通过表单登录一次,在会话中携带您的身份(即,在登录页面以外的页面上没有对 AD 的身份验证调用)。

AD 不会存储超出身份验证所需的大量用户信息。

  • 您期望该网站有多忙:假设是一个正常的商业/银行网站。没有这方面的进一步信息。

  • 此 AD 是否会被分区:可以,尽管首选最简单的架构。

  • 该广告是否会提供其他服务:否。

  • 您的 OU 结构将有多复杂

  • 您是否会扩展架构: 将使用标准架构。OU 结构将相当简单。

  • 您是否会对其执行许多搜索:仅查找用户名/电子邮件以进行后续绑定。

  • 您是否会针对用户对象存储大量信息:否

  • 本广告是否会涉及交易所:否
active-directory scaling
  • 11 11 个回答
  • 5068 Views

11 个回答

  • Voted
  1. Best Answer
    Brandon
    2009-07-29T09:48:40+08:002009-07-29T09:48:40+08:00

    您可以...吗?是的。你应该?不。

    首先,扩展负载 - 平均每秒 1 次登录的 1M 用户与平均每秒 100-1000 次登录的 1M 用户有很大不同。

    不过,这只是一些一般性的想法 - 虽然从技术上讲它可以,但我不知道 Active Directory 是否是在一个域中存储 100 万用户的理想工具。如果您将它用于您的 Web 应用程序并开始遇到性能问题,那么排除故障将非常困难。就个人而言,对于支持 100 万用户的东西,它确实需要更专注于该特定任务。

    如果这是您需要达到的基准并且您真的想使用 AD,您可能需要让 Microsoft 参与以确保您的架构绝对正确并至少进行负载/性能测试。

    当您只需要身份验证数据库时,Active Directory 所做和引入的“其他事情”的数量(层、复制、扩展、“生产”网络域上的帐户的安全问题)是,恕我直言,不适合用户数量和所需的相对简​​单性。方式过于矫枉过正和复杂。

    • 5
  2. Joshua Toon
    2011-09-27T06:17:42+08:002011-09-27T06:17:42+08:00

    通常,您应该为应用程序用户使用 AD - LDS (ADAM)。没有许可费用,并且 LDS 中的用户不能用作服务器本身的安全凭证。这是一件好事。如果您的用户目录遭到破坏,那么您的操作目录仍然可以使用。

    您应该使用 AD 来管理机器。确保没有本地帐户,使用组策略限制安全设置。(我想大多数人会惊讶这有多紧。)

    这些包括:

    • 使用 IPSEC 确保 NTLM 始终使用额外的加密进行传输。
    • 关闭缓存的凭据。
    • 在 Kerberos 上实施更高强度的加密算法。
    • 如果您必须使用完整安装,则将在具有 Applocker/软件限制策略的服务器上运行的应用程序列入白名单。尝试使用服务器核心。(至少尝试......这就是我所说的。)

    事实是……如果这是一个新系统。LDS 将是放置您的用户的好地方。它具有出色的密码策略、密码复杂性、等等等等……你真的应该考虑使用 SAML 或 OpenID……如果你有联合的用户和不联合的用户,你仍然应该针对声明进行编码建模并抽象出身份验证提供程序特定的代码。

    • 3
  3. Ryan Fisher
    2009-07-29T15:43:14+08:002009-07-29T15:43:14+08:00

    您可以为此使用 AD。但我建议您使用 ADAM(或现在称为“AD LDS”)。它应该为您提供 AD 的许多好处,即预先存在的技术知识和用于复制的 FRS 之类的东西。如果 AD 的好处在您的“专业人士”列表中很低,那么您真的应该考虑使用不同的 LDAP 包,例如 Siteminder,尽管这需要整合更多技术来构建一个可扩展的系统。

    正如许多海报所指出的,您需要查看的最大性能问题是并发登录请求。解决此问题的最简单方法是在 64 位硬件上构建您的 DC,并确保您的 DC 有足够的 RAM 来存储整个 .dit 文件。这将显着提高您的性能,因为它将在处理 LDAP 查询时完全消除分页。您可以使用 .dit 文件小于 1.5GB 的 32 位硬件,但何必呢?

    此外,如果您正在寻找某种类型的高可用性,请注意 AD 中的复制和站点感知并非真正旨在提供商业应用程序可能需要的级别。您需要了解定位 DC 的局限性,并编写应用程序以使用 Windows API 正确处理脱机/不可用的 DC。我经常看到这个问题,其中应用程序开发人员只是将他们的 LDAP 身份验证包指向 fqdn.ad.domain,但该地址只是一个简单的循环,如果您使 DC 脱机,则不会更新。

    • 2
  4. Bart Silverstrim
    2009-07-29T11:01:23+08:002009-07-29T11:01:23+08:00

    我不想把它带到你已经考虑过或因其他原因拒绝的方向,但是 AD 会给你什么像 RADIUS 这样的东西不会?您可能可以轻松设置一个可扩展的 RADIUS 服务器,我想我已经看到一些将使用 MySQL 之类的数据库作为后端的服务器,允许您轻松扩展和复制它,而无需 AD 为您提供的附加功能听起来就像你不会使用一样。RADIUS 仅用于身份验证任务......但请随时在评论中纠正我......

    我们曾经在很多个月前工作过的一些企业中将它用于拨号用户,但没有尝试使用 Web 身份验证。

    • 1
  5. Regent
    2009-07-29T11:54:21+08:002009-07-29T11:54:21+08:00

    该说明声称,即使是旧的 Windows Server 2000 也在每秒对 500 万个对象的目录执行 2,376 次基于 LDAP 的全树搜索。他们的测试硬件非常简单。

    无论如何,我认为 AD 是可靠身份验证的最佳解决方案,因为它具有很强的可扩展性(您可以在需要的地方拥有尽可能多的域控制器),并且安全。它是为身份验证和帐户管理而设计的,现在它的发展已经相当成熟。

    我不确定许可,但我认为如果您仅使用 AD 进行身份验证,则不需要为用户提供 CAL。但我认为您需要针对您的特定场景查询 MSFS。

    • 1
  6. David Pashley
    2009-07-29T09:46:42+08:002009-07-29T09:46:42+08:00

    与您将同时服务的用户数量相比,用户数量无关紧要。如果您有 100 万用户,但您每天只有一次登录,您将不需要很多硬件。这还取决于您如何进行身份验证。如果您使用的是 HTTP 身份验证,您可能必须对每个请求进行查找。但是,如果您使用 HTML 表单,则可以对登录请求进行查找,并为以下请求返回一个 cookie,这意味着您执行的身份验证查找要少得多。

    你想看看 AD 的横向扩展情况如何;在复制成为问题之前,您可以有多少台服务器为请求提供服务,无论是维护还是产生收益递减增加更多。

    此外,您能否添加缓存以加快查找速度。这对于 HTTP 身份验证设置更为重要。

    • 0
  7. shufler
    2009-07-29T09:51:21+08:002009-07-29T09:51:21+08:00

    不要忘记许可。您应该获得一个Windows Server 外部连接器,因为 1M CAL 将非常昂贵。

    Microsoft 的许可女士帮助解释了外部用户是什么。

    • 0
  8. Moo
    2009-07-29T09:54:11+08:002009-07-29T09:54:11+08:00

    您的问题缺少很多细节:

    1. 您期望网站有多忙
    2. 这个AD会被分区吗
    3. 此广告是否会提供其他服务
    4. 您的 OU 结构将有多复杂
    5. 你会对其进行多次搜索吗
    6. 你会扩展架构吗
    7. 您是否会针对用户对象存储大量信息
    8. 将交易所涉及此广告

    在我们对硬件要求做出判断之前,我们实际上需要大量信息。

    • 0
  9. Ben Quick
    2009-07-29T09:59:29+08:002009-07-29T09:59:29+08:00

    我不知道有关使用 Commerce Server 扩展 Active Directory的文章是否包含任何通用的 AD 扩展提示和技巧。值得快速浏览一下吗?

    • 0
  10. SirStan
    2009-07-29T10:01:41+08:002009-07-29T10:01:41+08:00

    如果这纯粹是为了对外部用户进行身份验证——为什么还要打扰 AD?

    • 0

相关问题

  • 内部名称解析

  • 什么时候域比工作组更适合网络?

  • 我应该在 Active Directory 中配置哪些重要的组策略设置?[关闭]

  • 使用 AD 在特定时间段内阻止对特定网站的访问

  • 在登录期间打开 URL 的现代方法是什么?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve