【问题标题】:CouchDB cookie authentication with HTTPS使用 HTTPS 的 CouchDB cookie 身份验证
【发布时间】:2014-07-28 05:17:22
【问题描述】:

我完全按照文档中给出的说明为我的 CouchDB 配置了 HTTPS(只是我将 ssl 端口更改为 6161)。我创建了两个管理员。然后,当我尝试使用 cookie 身份验证登录时,如下所示:

curl -kX POST https://localhost:6161/_session \
   -H 'Content-Type:application/x-www-form-urlencoded' \
   -d 'name=admin&password=admin'

用户名和密码正确,因为我可以使用 curl 的 -u 选项登录。但我总是收到unauthorized 错误。我不确定这里出了什么问题。

【问题讨论】:

    标签: curl https couchdb


    【解决方案1】:

    我终于知道在这种情况下我应该怎么做。我需要结合基本身份验证和 cookie 身份验证才能登录。

    curl -kX POST -u admin:admin https://localhost:6161/_session \
         -H 'Content-Type:application/x-www-form-urlencoded' \
         -d 'name=admin&password=admin'
    

    可能是因为我设置了require_valid_user = true,而cookie认证是REST API的一种,而基本认证是HTTP协议的一部分,上面的flag影响在HTTP层面。

    但是现在还有一个问题:每次做cookie认证需要提供两次登录信息吗?我为基本身份验证提供一个登录名,为 cookie 身份验证提供另一个登录名怎么样?这会对系统构成威胁吗?

    【讨论】:

    • 您不能添加两个冲突的凭证对 :)
    • @JanLehnardt 我不完全理解你的意思。但这是我发现哪种方法有效的唯一方法。我需要使用 -u 选项提供登录信息来执行每个请求,除非我有 AuthSession cookie,因此要获取登录 cookie,我需要使用 -u 选项和消息正文提供登录信息.
    • 我的意思是:CouchDB 有许多要通过的身份验证方案。默认情况下,它们按以下顺序排列:oauth、basic auth、cookie auth。如果您发送带有 cookie 和基本身份验证信息的请求,CouchDB 将首先运行 oauth,确定没有 oauth 信息,然后转到下一个基本身份验证信息,它认为存在,然后授予或拒绝访问。如果基本身份验证允许或拒绝继续请求,甚至不会查看会话 cookie
    • @JanLehnardt 我同意你的解释,但问题是,如果我不使用基本身份验证提供登录,我将无法正常工作,我总是得到“需要身份验证”。奇怪的是,如果我按照我在回答中给出的内容进行操作,我将获得身份验证并返回一个 AuthSession cookie,我以后可以在没有基本身份验证的情况下使用它。所以,我还是很困惑。不过谢谢你的解释!
    • 对于它的价值,我对 couchdb2.0 有同样的问题:https POST _session 总是导致未经授权的 ``HOST="127.0.0.1:5984" curl -X POST $HOST/_session \ - H 'Content-Type:application/x-www-form-urlencoded' \ -d 'name=testlocal442&password=test' {"ok":true,"name":"testlocal442","roles":["foo", "bar"]} HOST="127.0.0.1:6984" curl -kvX POST $HOST/_session \ -H 'Content-Type:application/x-www-form-urlencoded' \ -d 'name=testlocal442&password=test' {" error":"unauthorized","re​​ason":"名称或密码不正确。"} ```
    猜你喜欢
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    相关资源
    最近更新 更多