有没有办法为MongoDb使用Linux集成安全性?

时间:2013-01-09 16:23:58

标签: security mongodb

我们有连接在Linux服务器上部署的MongoDb的c#web app。我们的想法是使用单个指定的Linux帐户进行Web应用程序登录并连接到MongoDb。据我所知,MongoDb默认情况下根本不支持集成安全性,它应该有自己的密码用户数据库,也没有角色,对吧?如果是这样,我想知道是否有任何单独的第三方框架/工具或某些东西可以帮助我使用所需的方法?

除此之外,如果您知道有关在Web应用程序中实现Mongo安全性的最佳实践的良好在线文章,例如在何处以及如何存储用户和加密密码等,请给我一个链接。

1 个答案:

答案 0 :(得分:2)

  • 请给我一个链接。

几个月前我为MongoDB做了一些安全文档,可以找到它here,这应该是你的起点。

  • 据我所知,MongoDb默认情况下根本不支持集成安全性,它应该有自己的密码用户数据库,也没有角色,对吧?

直到MongoDB 2.2,身份验证和授权都是本地的。在2.2中,RBAC(基于角色的访问)有限,即两个角色“读取”和“写入”,“写入”能够执行所有操作数据库,即管理员。

新角色在2.4中会发生变化:

name            description of privilege

read            ability to query data in any collection in the database, other than 'system.users', and also ability to run any command without an A or W attribute

readWrite       everything permitted by 'read' privilege, and also the ability to insert, update,
or remove documents or indexes in any collection other than 'system.users', and also the ability to run any command without an A attribute

userAdmin       ability to read and write the 'system.users' collection

dbAdmin         ability to run admin commands affecting a single database; see list below

serverAdmin     ability to run admin commands affecting the entire database server; Can only be set on admin database; see discussion

clusterAdmin    admin commands for a cluster of shards or a replica set; Can only be set on admin database

记录在案here。这个增强的RBAC将在2.3.2(开发版本)和下一个版本2.4.0的所有MongoDB版本中提供。

使用MongoDB 2.4,还可以使用Kerberos进行身份验证,但是,此委派身份验证只能在企业版本中使用,这需要我们的商业支持合同。

MongoDB中目前没有任何内容可以强制实施密码复杂性,但显然在2.4中使用Kerberos,KDC可以做到这一点。您将手动确保(通过您的内部密码策略等)用户意识到使用非复杂密码并在多个设备上重复使用相同密码的问题。假设您运行的是2.2,MongoDB访问的所有登录名,密码和权限都存储在每个数据库下的system.users集合中。 Here是您应该阅读的文档的确切链接。