Mongo db中的身份验证:如何选择?

Posted

技术标签:

【中文标题】Mongo db中的身份验证:如何选择?【英文标题】:Authentication in Mongo db: how to choice? 【发布时间】:2014-12-20 00:14:18 【问题描述】:

您能帮我选择 Mongo db 中的身份验证类型吗?

我在官方网站上找到的:

    MONGODB-CR MongoDB 质询/响应身份验证。 MONGODB-X509 MongoDB SSL 证书认证。 PLAIN 使用 LDAP 的外部身份验证。您也可以使用 PLAIN 对数据库内用户进行身份验证。 PLAIN 以明文形式传输密码 文本。此机制仅在 MongoDB Enterprise 中可用。 GSSAPI 使用 Kerberos 的外部身份验证。这种机制是 仅在 MongoDB Enterprise 中可用。

非常感谢!

【问题讨论】:

其中一些仅为企业版 请详细说明。为什么需要身份验证?你有分片集群还是副本集。您可能想先阅读 Eric Raymond 的优秀 "How to ask questions the smart way"。 根本没有“最佳”解决方案。什么是最好的取决于您的要求。介意告诉我们您需要什么以及您拥有什么? 【参考方案1】:

如前所述,这些选项中的大多数仅在企业版 MongoDB 中可用。

必要时,外部身份验证方法将由您的组织的需求决定——是否依赖现有的 LDAP 基础架构进行用户管理。

在 MongoDB 3.0 中,它现在支持多种身份验证机制。

MongoDB 挑战和响应 (SCRAM-SHA-1) - 3.0 中的默认设置 MongoDB 挑战和响应 (MONGODB-CR) - 以前的默认设置 (

如果您从创建了新用户的新 3.0 数据库开始,他们将使用 SCRAM-SHA-1 创建。

所以你需要一个能够进行身份验证的驱动程序:

http://docs.mongodb.org/manual/release-notes/3.0-scram/#considerations-scram-sha-1-drivers

如果您使用现有用户数据从 2.x 升级数据库,他们仍将使用 MONGODB-CR,并且必须升级用户身份验证数据库:

http://docs.mongodb.org/manual/release-notes/3.0-scram/#upgrade-mongodb-cr-to-scram

现在,使用 SCRAM-SHA-1 创建的用户连接到 MongoDB 3.0 需要指定身份验证数据库(通过命令行 mongo 客户端),如果使用驱动程序,则使用其他机制。

$> mongo -u USER -p PASSWORD --authenticationDatabase admin

在这种情况下,将使用默认的“admin”数据库进行身份验证。

【讨论】:

以上是关于Mongo db中的身份验证:如何选择?的主要内容,如果未能解决你的问题,请参考以下文章

在 Mongo Db 中更新相关文档后 Spring 用户身份验证不起作用

连接到多个 mongo db 主机并在 spring boot 中使用不同的数据库进行身份验证

如何选择使用 Laravel Sanctum 进行身份验证?

如何使用 mongo、passport 和 node js 更新用户的个人资料?

身份验证时如何设计选择SIM卡并在iOS中获取唯一ID?

如何在 MongoDB 中进行分组选择