0

我想将 couchdb 用于通过 XMPP-Server (Openfire) 进行外部用户身份验证的 Web 应用程序。我怎样才能做到这一点?假设我们有三个用户:

  • basicuser@mydomain.tld
  • 高级用户@mydomain.tld
  • moreadvanceduser@mydomain.tld

现在 basicuser@mydomain.tld 应该能够阅读所有适合基本用户的文档。advanceduser@mydomain.tld 应该能够读写所有适合基本用户的文档。moreadvanceduser@mydomain.tld 应该能够阅读所有适合基本和高级用户的文档。

那可能吗?

4

1 回答 1

0

遵循OpenFire 的数据库安装指南,只有关系数据库直接与 Open Fire 一起工作:

  1. MySQL
  2. 甲骨文
  3. 微软SQL服务器
  4. PostgreSQL
  5. IBM DB2
  6. 数据库

我的第一个想法是尝试将整个数据库移动到 couchdb。

无论如何,您将需要不同的组来映射不同类型的用户。据我所知,CouchDB 中的读/写访问权限不能授予或撤销单个文档,而是数据库。因此,您最终会得到 3 个数据库,每个数据库对应一种访问级别。我不确定通过使用身份验证级别“标记”文档来处理 CouchDB 中基于文档的身份验证是否是一个好建议。

所以,我可以想到不同的场景:

  1. 如果您的 XMPP 服务器或数据库能够通过 web 服务验证凭据,您可以在 couchapp 的登录过程中使用它。
  2. 如果您的 Openfire 后备数据库有 Web 服务,您可以使用它们将用户与 couchdb 同步并将它们映射到 auth lvl 组。我认为这不是一个很好的方法,因为您还必须处理更新或删除的用户,并且还要考虑安全性。当然,这也可以通过在 python 或您喜欢的任何语言上编写脚本来完成。
  3. 使用 LDAP 提供身份验证。目前不适用于 CouchDB。
  4. 也许一个好主意是使用Z-XMPPstrophe或基本上任何以某种方式处理 XMPP 的 js 框架?在那里您可以了解 XMPP 身份验证,并可能使用它来验证 XMPP 的身份验证凭据。我还刚刚了解到有一本书是关于“Professional XMPP Programming with JavaScript and jQuery”的。

现在,这些都没有提供完整的解决方案,而是需要思考和讨论的东西。

哦, StackOverflow上还有另一个线程。

问候,克里斯

于 2011-04-06T10:15:32.843 回答