我需要关于为我的基础架构使用 AD DS 或 AD LDS 的建议。
我有一个网站,到目前为止还没有任何访问者登录设施,现在我们正在开发一个新的应用程序,以便访问者可以在网站上创建帐户。您能想到的最好的例子是任何电信服务提供商,他们有自己的网站,现在正在为其客户创建登录设施,以便用户可以创建帐户并订阅 ebill 类型的设施。
希望现在情况很清楚。对于这个特定的应用程序,我打算拥有一个 Web 服务器、一个应用程序服务器、一个 DB 服务器、一个 SMTP 服务器和一个 AD 服务器(用于用户身份验证和保存配置文件)。
我的问题从 AD 开始,这里我需要 AD DS 还是 AD LDS,我需要从 AD 获得的是
- 提供用户认证
- 提供基于角色的访问。
这是我的查询。
正如 Rajeev 在评论中指出的那样,Active Directory是一个 LDAP 服务器等等,而AD LDS服务是一个“免费”的Windows Server 角色,专门用来做他正在寻找的事情。AD 提供了许多附加功能(复制、Kerberos、联合等),您必须使用 OpenLDAP+postgres+kerberos 等免费/OSS 解决方案自行构建这些功能。还有其他(主要是商业)目录服务具有类似的能力。
许可应该不是问题。如果您的部署将主要基于 Windows(用于计算机帐户、管理员帐户等),您可能会安装 AD,并且这将相对较小(最多看起来像 5 个用户的 CAL)。您在 LDS 中为公共用户创建的任何“用户”对象都不会计入您的 AD DS 帐户的许可证。您可以联系Microsoft 许可以验证这一点。
使用 AD LDS 肯定有一些很大的好处,但是您建议的安装可能太小而无法实现其中的一些。
综上所述……如果您对 AD 没有任何特殊经验,并且没有任何特定的基础设施来处理它,那么走这条路可能不会带来太多好处。根据您描述的部署的规模,您几乎可以肯定会使用 LAMP + OpenLDAP 之类的 OSS 设置,具体取决于您的舒适区和您的应用程序要求。
请记住,如果您正在执行任何类型的用户管理,那么如果您的方法只是“在 SQL 表中粘贴一堆用户名和密码”,那么您将非常非常抱歉。用户管理是一个复杂的过程,之前已经解决了无数次。处理密码是你不应该做的事情,除非你已经在安全相关的编程方面有很多经验。请不要自己动手!
找到一个已经被设计为正确处理 AAA* 的合适的商业或 OSS 框架,像 OpenID 这样的东西可能不是一个糟糕的主意。Jeff Atwood 的博客 (他经营一个网站,您可能听说过...)有许多帖子围绕他在StackOverflow和ServerFault上的工作讨论这些问题。
无论如何,我希望这个讨论会有所帮助。
您确实需要学习编程,但您不需要任何 AD 实现。大多数网站在某些数据库(即 SQL)中都有自己的用户数据库,并且不依赖 AD。