【问题标题】:CouchDB: How to set/get user's password hash?CouchDB:如何设置/获取用户的密码哈希?
【发布时间】:2011-08-31 23:32:34
【问题描述】:

我想将 MySQL 数据库用户表中的密码与 CouchDB _users 数据库同步。据我所知,在 CouchDB 上,无法通过 HTTP API 查找用户的密码哈希。您将如何手动检索和修改 CouchDB 用户密码哈希?

This question 似乎涵盖了设置密码,但不包括获取。

【问题讨论】:

    标签: security authentication login couchdb


    【解决方案1】:

    您无法获取原始密码,只能获取 SHA1 校验和和输入哈希。

    您可以直接从_users 数据库中的用户文档中直接获取它们。

    curl http://localhost:5984/_users/_all_docs?startkey=\"org.couchdb.user\"\&include_docs=true
    

    对于每一行,您都有 saltpassword_sha 值。

    【讨论】:

    • 有什么理由不返回哈希值吗?我在我的 v1.0.1 服务器(Ubuntu 11.04 包)上执行了同样的查询,并收到了用户的所有属性,除了密码项。以管理员身份登录时,我也在蒲团上试过这个。未列出用户的密码哈希和盐。
    • 我认为管理员用户确实没有获得密码哈希或盐,因为它们存储在 .ini 配置文件中。其他普通用户在 Apache CouchDB 中确实有哈希值和盐值。
    • admin 用户 do 获得哈希和盐,但它仅存储在 .ini 文件中,因此无法通过 _users 数据库读取。您可以从 /_config/admins/ 获取它。
    • 在我接受之前还要验证一件事:除了将用户文档发布到 _user 数据库之外,是否还有一种“官方”方式来创建用户?系统对管理员用户文档的处理方式不同,这让我有点害怕。常规用户文档还有其他问题吗?
    • 管理员密码值是我能想到的唯一例外。创建普通用户的官方方法肯定是_users数据库中的文档。更新它们的官方方法肯定是更改该文档中的值。
    猜你喜欢
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    相关资源
    最近更新 更多