【问题标题】:Couchdb authentication using second server使用第二台服务器的 Couchdb 身份验证
【发布时间】:2017-03-19 04:44:06
【问题描述】:

这方面的详细信息似乎很难找到。所以我的情况是一个带有用户名和密码的现有服务器。我正在添加一个额外的 couchdb 服务器来管理移动应用程序的数据,但是我仍然希望通过现有服务器处理所有身份验证。 所以我可以向现有服务器发送一个带有用户名和密码的 HTTP 请求,如果访问被接受,我可以让它发回我喜欢的任何东西。然后我如何使用该信息向 couchdb 服务器进行身份验证? 我想有可能在成功的身份验证后从现有服务器接收到一个秘密,我们可以将其与我们手动存储在 couchdb 服务器上的一个匹配。但是,这似乎不是很安全。

我已经阅读了 couchdb 的身份验证文档,但我仍然感到困惑。对身份验证系统有什么建议吗?

【问题讨论】:

  • 一种解决方案可能是在您访问 CouchDB 服务器的基础上使用代理或层。这会更慢,但身份验证处理将是集中的。
  • 谢谢。我没有设置它的专业知识,但它可能是未来的一种选择。我真的很难理解 couchDb 中的代理身份验证。它是否应该像 cookie 身份验证 API 一样为您提供会话访问权限?
  • 基本上我想要它完全一样,但使用 CouchDB。 firebase.google.com/docs/auth/web/custom-auth

标签: authentication couchdb pouchdb


【解决方案1】:

我认为 JWT 身份验证正是您想要的。有一个插件可以为您做到这一点:https://github.com/dmunch/couch_jwt_auth(存储库是一个 fork,实现原始 one plus 的附加功能与 CouchDB 2.0 兼容。)

基本上,您将您的用户名/密码发送到身份验证服务器,然后它会返回一个令牌(JWT)。您现在可以使用此令牌对 CouchDB 进行身份验证。 CouchDB 使用共享密钥 (HS256) 或使用身份验证服务器的公钥来验证令牌的完整性。

【讨论】:

  • 谢谢,这看起来确实是我需要的。但是,我确实设法通过将用户名和共享密钥(通过 HMAC-SHA1 编码)从身份验证服务器发送到 couchDB 来使 CouchDB 代理身份验证工作。我设法在 couchdb 1.6.1 中做到了这一点,但在 2.0 中它似乎坏了。
猜你喜欢
  • 1970-01-01
  • 2020-01-15
  • 1970-01-01
  • 1970-01-01
  • 2012-08-17
  • 2018-05-06
  • 2016-07-29
  • 1970-01-01
  • 2012-09-06
相关资源
最近更新 更多