安全,自动化的_user角色创建

时间:2018-09-23 20:29:14

标签: security couchdb

我正在构建一个使用CouchDB作为后端数据库的Web应用程序。用户创建帐户后(即他们已经在_user数据库中创建了文档),我希望能够更改其角色以反映已完成的任务。例如,当用户创建帐户时,将发送一封电子邮件,以便他们可以验证其电子邮件地址。验证后,我想向用户添加一个verified角色,以便只有这样他们才能(通过应用程序)写入数据库。

我遇到的问题是只有管理员才能更改用户角色,因此据我所知,在某个时候使其自动化需要自动化过程使用管理员凭据。我当时正在考虑在this线程中模拟解决方案,并创建一个验证服务,该服务可以接收电子邮件验证并具有CouchDB数据库的管理员凭据。然后,问题就变成了如何为该服务管理员提供凭据。

This线程似乎表明管理员凭据可以以明文形式存储在验证服务可访问的文件中(但不能访问其他文件)。感觉...很危险。但这可能只是我的妄想症和对安全性缺乏深刻了解的结合。

所以,有几个问题:

  1. 将管理员凭据保存在明文文件中,用于 从安全角度来看验证服务还可以吗?

  2. 还有另一种方法可以更改用户角色而无需 需要存储管理员凭据?换句话说,有没有办法 做什么 this 线程建议并仅授予一些管理员权限(例如更改角色) 无需实际使用管理员?

如果有帮助,Web应用程序,couchDB和验证服务均在与docker-compose联网的单独Docker容器中运行,并且仅通过NGINX反向代理公开,并且也在单独的容器中。

此外,由于各种原因,在我的情况下,不涉及用户角色更改的解决方案将不起作用。我必须能够以用户角色跟踪verified的状态。

1 个答案:

答案 0 :(得分:0)

  1. 如果文件存储在服务器端并且不能被公众访问,这是安全的。 (您不希望该文件由您的NGINX或Apache服务器提供)

  2. 不是真的。

因此,按照我的看法,您需要一个具有以下功能的“注册服务”:

  • 注册(较少认证)。任何人都可以注册
  • 帐户确认(需要一定的安全性)。也许,它需要令牌或类似的东西

这两个功能都使用“ admin”帐户执行操作,这是完全安全的。