我们正准备部署我们的应用程序的新版本。 生产环境将是连接到两个数据库服务器(configuration为镜像)的两个负载平衡应用程序服务器。 现在在我们的办公室进行testing时,我们使用一个应用程序服务器和一个数据库服务器,大部分身份validation都是使用我们的域控制器完成的,我们发现域身份validation很好,并希望尽可能保持在生产中。
当我们投入生产时,我试图弄清楚是否有两台应用程序服务器是域控制器是合理的,这样对SQL服务器等的服务authentication可以使用域authentication。
在这种情况下的常见做法是什么,我应该使用Active Directory还是有一个轻量级的替代? 工作组模式是可接受的方式吗? 让我的应用程序服务器成为域控制器是愚蠢的吗?
我不会这样做,出于安全原因,如果应用程序层将暴露在互联网上。 如果是这样,他们应该在DMZ,而不能直接联系你的内部广告。 想象一下,如果他们被破获,他们是DC。 坏消息,对吧? 想象一下,如果他们不是DC,而是破解,可以用来直接攻击域帐户。
如果你想授权给你的广告,最好的做法是使用像ADAM和AD复制或某种types的代理。
如果这是一个只有内部的应用程序,而不是暴露给networking,那么你可以做任何你想要的。
编辑 – 另一个评论。 如果你想严格地在应用环境中进行域authentication(你的问题在这一点上我不清楚),那么你可以在你的DMZ中设置一个独立的AD。 如果你是SQL的集群,我认为你需要一个域。 允许应用程序层使用该域对SQL进行身份validation比允许它连接到实际的内部AD要好。 “最佳做法”总是要权衡你所要做的事情的好处和风险。
让我的应用程序服务器成为域控制器是愚蠢的吗?
当然是。 将域控制器直接暴露给Internet永远不是明智之举。 您的应用程序服务器应该在另一台计算机上查询DC(虚拟或物理)。 您还应该确保服务器和DC之间的任何stream量都已encryption。