我们有一套专门为我们的分销商和合作伙伴提供的多种网络应用程序。有些是标准套件,例如 Alfresco,其他则是定制网站。
所有应用都受登录保护。我们希望用户能够通过单一登录访问所有这些应用。因此,我们正在考虑设置一个 OpenLDAP 服务器来处理所有这些应用的身份验证请求。
我们应该将特定于应用程序的用户权限存储在哪里?例如,谁可以使用 app1,谁可以使用 app2,以及以什么角色使用?它应该存储在 LDAP 中还是应用程序数据库中?
换句话说,我们是否应该仅将 LDAP 用于基本身份/身份验证查找,并跟踪每个应用程序数据库中谁可以使用哪个应用程序?或者我们可以将所有这些信息存储在 LDAP 中(这很有意义)?
TIA 提供了一些启示。
答案1
对于更细粒度的权限,如“在首页上具有编辑权限”,我会将其保留在应用程序级别,但对于简单的“具有读/写访问”级别的权限,为了简单起见,我会在 ldap 中实现它。
需要注意的一点是,在某些平台上用户可以关联的最大组数,因此我会为应用程序组成员资格属性使用自定义名称,这样您甚至不需要考虑这一点。
答案2
使用 LDAP 来验证用户身份,并使用应用程序数据库来确定该用户是否具有权限。可以仅在 LDAP 中执行此操作,但分离有好处,实际上简化了管理。这与在一个区域管理用户帐户而在另一个区域管理文件/文件夹权限没有什么不同。
答案3
把所有东西都放入 LDAP,这就是它的用途。
答案4
需要指出的一点是,虽然由于 Active Directory 具有 LDAP 功能,使用 Active Directory 可能很诱人,但它可能不是最佳选择。与许多 Microsoft 产品一样,当您坚持使用 Microsoft 产品时,AD 往往效果很好,但当您必须开始混合环境时,事情就会变得奇怪。然而,值得称赞的是,微软在过去几年中在这方面取得了长足的进步。您可能遇到的最大挑战是您是否需要对 AD 进行任何架构更改以支持您的应用程序。Microsoft 不一定支持架构更改,并且可能会使未来的 AD 升级变得复杂。虽然公平地说,这对任何 LDAP 服务器都是如此,但我认为在 LDAP 服务器上进行架构更改更为常见。如果您有现有的 AD 服务器,则可以在 LDAP 服务器(例如 Red Hat Directory Server)和 AD 服务器之间实现同步操作。这可以让您同步用户名,但在每个服务器域中保留系统特定信息。是的,这确实增加了管理的复杂性,但总的来说,这是最灵活的方法之一。
最终,集中式身份验证受以下规则管辖:
"Where do you want your pain?"