在couchDB上进行非管理员用户身份验证

时间:2011-09-01 13:24:00

标签: couchdb

我和couchdb在一起。我想将我的数据库暴露给互联网。所以我学到了什么,显而易见的是,管理员不是个好主意。

因此,我计划为每个允许在单个数据库中使用CRUD文档的数据库创建非特权用户。 CouchDB将由Apache2通过SSL代理。

到目前为止,我所做的是通过在_users中创建文档来创建用户。

用户文档如下所示:

{
   "_id": "org.couchdb.user:xxx",
   "_rev": "1-0eb034d6789ff52f8c1a414510983108",
   "type": "user",
   "name": "xx",
   "roles": [
       "xxx"
   ],
   "password_sha": "xxx",
   "salt": "xxx"
}

我创建了一个HTML-Form,它实际上已经为admin-Users工作了。 HTML表单将凭据发布到/ _session。

<!-- language-all: lang-html -->
<FORM action="http://example.com:5984/_session" method="POST" name="logonForm">
<INPUT type="hidden" name="destination" value="http://excample.com:5984/_session">
<p >Benutzername:<br><INPUT type="text" id="name" name="name" size="28" maxlength="256"></p>
<p >Kennwort:<br><INPUT type="password" autocomplete="off" id="password" name="password" size="28" maxlength="256">&nbsp;&nbsp;
<INPUT type="submit" value="Anmelden" >
</FORM>

如上所述,这已经适用于管理员用户,但不适用于/ _users中的常规用户。

根据角色在数据库中授予访问权限。

有谁知道出了什么问题?

1 个答案:

答案 0 :(得分:0)

最后我发现了错误:

这是一个错误的gererated(没有盐)SHA1哈希: - (

可在此处找到非常好的文档Security Features Overview