这个问题是不可能回答的,因为你(本质上)混合了隐喻。“层”模型是关于在应用程序中分配功能,与关于如何构建 Active Directory (aka AD) 实现的讨论无关。因此,在您的场景(AD 的单独硬件)中,实际答案是NONE。单独的 AD 域控制器将不在任何“层”中。
AD 比看起来更复杂。除了运行设置之外,还有更多内容。Active Directory 至少需要一个“域控制器”(又名“DC”),它是运行“Active Directory 服务”的服务器。强烈建议在 AD 实施中存在多个 DC,以便在一个 DC 发生故障时不会丢失登录能力。Active Directory 中的其他服务器称为“成员服务器”。此外,还有一些特殊服务(又名“ FSMO 角色”)只能在每个域或位置的单个 DC 上激活。也很强烈出于性能和冗余原因,建议不要在 DC 上运行 Exchange、SQL Server 或任何高流量应用程序。通常还建议不要将 DC 直接暴露在 Internet 上,因为 DC 上有许多服务正在运行并且端口处于打开状态。此外,AD 要求它是域的主 DNS。
也就是说,如果 AD 只是要对 Web 应用程序的用户进行身份验证,那么在现有服务器之一上安装它并没有真正的问题。我会选择“应用程序”层服务器,因为出于安全原因最好不要将其放在面向 Web 的服务器上,出于性能原因最好不要将其放在 DB 服务器上。
但是,正如其他人所指出的,AD 并不是单独进行身份验证的最佳选择,而且几乎可以肯定是矫枉过正,尤其是对您而言,因为您不知道如何使用它。如果用户数量较少且变化不大,您可以使用内置在 IIS 中的本地 Windows 身份验证。
我假设您在问应该在哪个服务器上运行 Active Directory 服务?
理想情况下,它将位于其 OWN 服务器上(即使它是虚拟化的),但如果您必须共享它,那么我会将其放在任何不被公众直接访问的服务器上。
所以,这意味着:不是 Web 服务器,也不是 App 服务器。这离开了数据库服务器,但这也是一个不好的地方,因为大多数数据库服务器都承受着压力。
我将根据您的措辞在这里做出一些广泛的假设。
这真的取决于你的使用情况。您这样做只是为了进行身份验证吗?如果是这样,请重新考虑您的实施。还有其他不需要许可且占用空间更小的集中式身份验证解决方案(想到 OpenLDAP)。
如果您指的是网络层的前线,则绝对不是网络层。再次回到用法,如果数据库层是指实际使用 Active Directory 模式进行信息检索,OpenLDAP 将更加高效,资源消耗更少,而且在这一点上,为什么不直接使用适当的数据库呢?
域控制器实际上是出色的应用程序服务器,但我不建议将它们用于非常大的站点使用的应用程序。您想在内部运行 Sharepoint 吗?前进。您想运行每分钟获得 3,000 次点击的生产网站吗?不要(除非你有硬件,即使那样你也有安全问题要担心)。
这会在您的 Intranet 客户和真实(付费)客户之间建立联系吗?如果是这样,为什么你真的需要使用共享身份验证?正确的实施将外部世界与您的员工隔离开来。如果您想出于“易于管理”的目的创建一个独立的域,那么请考虑当您的域出现故障并且无法通过 Active Directory 进行身份验证时,您的应用程序会发生什么情况。你真的要向你的老板解释吗?
这个问题是不可能回答的,因为你(本质上)混合了隐喻。“层”模型是关于在应用程序中分配功能,与关于如何构建 Active Directory (aka AD) 实现的讨论无关。因此,在您的场景(AD 的单独硬件)中,实际答案是NONE。单独的 AD 域控制器将不在任何“层”中。
AD 比看起来更复杂。除了运行设置之外,还有更多内容。Active Directory 至少需要一个“域控制器”(又名“DC”),它是运行“Active Directory 服务”的服务器。强烈建议在 AD 实施中存在多个 DC,以便在一个 DC 发生故障时不会丢失登录能力。Active Directory 中的其他服务器称为“成员服务器”。此外,还有一些特殊服务(又名“ FSMO 角色”)只能在每个域或位置的单个 DC 上激活。也很强烈出于性能和冗余原因,建议不要在 DC 上运行 Exchange、SQL Server 或任何高流量应用程序。通常还建议不要将 DC 直接暴露在 Internet 上,因为 DC 上有许多服务正在运行并且端口处于打开状态。此外,AD 要求它是域的主 DNS。
也就是说,如果 AD 只是要对 Web 应用程序的用户进行身份验证,那么在现有服务器之一上安装它并没有真正的问题。我会选择“应用程序”层服务器,因为出于安全原因最好不要将其放在面向 Web 的服务器上,出于性能原因最好不要将其放在 DB 服务器上。
但是,正如其他人所指出的,AD 并不是单独进行身份验证的最佳选择,而且几乎可以肯定是矫枉过正,尤其是对您而言,因为您不知道如何使用它。如果用户数量较少且变化不大,您可以使用内置在 IIS 中的本地 Windows 身份验证。