5

我在一家拥有多个面向公众的网站的公司工作。

其中一些网站是使用第三方产品(Moveable Type、myBB、Trac 等)构建的。我们还有几个基于 Microsoft 堆栈的定制网站。

目前,我们没有统一的认证/授权方案;每个站点都实现了自己的用户存储。

我热衷于在所有站点上实施统一的用户身份验证。我不希望实现单点登录(如果在切换站点时提示用户输入凭据,这不会很糟糕),但我确实需要每个用户都有一个用户名和密码。

在我看来,最有可能的解决方案是实现 LDAP 服务器。我们使用的一些第三方产品支持 LDAP,我可以修改我们的定制站点以使用 LDAP。

但是,我从来没有使用 LDAP 存储来管理外部用户(我一直都建立自己的用户存储)。

使用 LDAP 的优缺点是什么?我是否忽略了其他选择?

谢谢

4

2 回答 2

2

我没有使用 OpenLDAP 的经验,但作为基于 ActiveDirectory 的 LDAP 的优缺点:

优点:

  • 它标准化了,所以经常有一些绑定插件;
  • 很多开发框架都支持与 LDAP 通信;(我前段时间用 PHP 完成了它;.NET 有一个专用的命名空间。)
  • 实现了所有必要的身份验证方法和安全机制——密码被安全存储,必要时可以以安全的方式与服务器进行身份验证;
  • 如果需要,可以启用帐户锁定策略/密码历史功能;
  • AD有方便的用户管理工具,也可以脚本化或API访问;
  • 用户可以有复杂的组成员;
  • 可以自定义任何对象/属性的权限;
  • 可以通过添加更多域控制器来分发/复制目录。

缺点:

  • 部署需要一些规划;
  • ActiveDirectory 应该定期备份。
  • 如果您针对 Active-Directory 进行身份验证,则需要 Microsoft 许可证。
  • 许可证相当昂贵。
于 2010-02-02T12:51:00.203 回答
2

LDAP 是将用户信息存储在结构化树中的好方法。LDAP 协议还使其在 Web 上随时可用。有几种不同的 LDAP 解决方案,但您选择的当然是基于您服务器的操作系统。如果您有任何 Microsoft 站点,最好的选择是使用 Active Directory 或 ADAM (MS)。将 unix 机器从属到 Active Directory 比反过来更容易。如果您的所有查询都将基于 Web 并通过代码进行处理,那么您可以使用您选择的任何 LDAP 源(它们都相当复杂,但使用易于管理的正确工具)。

LDAP 本质上是轻量级的(因此是 L)并且速度很快。它的结构是为了对用户信息进行分层访问,并且可以根据所有这些信息轻松搜索。它还支持我强烈推荐的 SSL 协议 (LDAPS)。

缺点是基本的层次结构和 LDAP 结构本身的差异。相对于 RFC,Active Directory 不是一个纯粹的 LDAP,但它足够接近,可以很容易地找出它。

于 2010-02-02T13:12:38.140 回答