2011-09-01 139 views
2

我有点与couchdb的绳子。我想将我的数据库暴露给互联网。所以我学到了什么,明显的是,adminparty不是个好主意。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表格,其实际工作的管理,用户已。 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

如果表单工程管理用户,那么它也应该为非特权用户工作,这是你的第一个问题需要解决,你能提供更多关于登录表单的细节,以及为什么它可能适用于管理员,但不是非特权用户?谢谢! – JasonSmith

+0

我没有看到表单。您能否更新您的问题并在那里添加?谢谢! – JasonSmith

+0

对不起,有过我插入HTML代码的问题。我更新了这个问题。 – Randy

回答

0

终于让我找到的错误:

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

一个非常好的文档可以在这里找到Security Features Overview

相关问题