对外部用户使用 LDAP 的利弊

san*_*ndy 5 authentication forms-authentication ldap active-directory openldap

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

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

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

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

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

但是,我从未使用过 LDAP 存储来管理外部用户(我一直在构建自己的用户存储)。

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

谢谢

Reg*_*ent 2

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

优点:

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

缺点:

  • 部署需要一些规划;
  • 应定期备份 ActiveDirectory。
  • 如果您针对 Active-Directory 进行身份验证,则需要 Microsoft 许可证。
  • 许可证相当昂贵。